> ## Documentation Index
> Fetch the complete documentation index at: https://docs.sourcery.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Use str.join()

#### Sourcery refactoring id: `use-join`

#### Description:

Use `str.join()` instead of `for` loop

#### Before:

```python
all_hats = ""
for hat in my_wardrobe.hats:
    all_hats += hat.description
```

#### After:

```python
all_hats = "".join(hat.description for hat in my_wardrobe.hats)
```

#### Explanation:

The most straightforward way to concatenate strings in Python is to just use the
`+` operator:

```python
hat_description = hat.colour + hat.type
```

This is perfectly fine when you are joining together small numbers of strings
(though f-strings are the best choice for doing more complicated string
handling).

The problem with using `+` or `+=` comes when they are used to concatenate large
lists of strings. For example you might use them in a for loop like the 'Before'
example. This is cumbersome to read, and also isn't very performant. A new
string has to be created for every iteration in the for loop, which slows things
down.

Luckily Python strings come with the `join` method to solve this problem.

This accomplishes the same task in one line and is quite a lot faster to boot.
You can also add a separator in between each string easily, without having to
worry about extra separators being added at the beginning or end of the result.

```python
all_hats = ", ".join(hat.description for hat in my_wardrobe.hats)
```
