# Python string to list: Transformar string em listas em Python

Em Python, listas são objetos mutáveis, já strings são imutáveis. Assim, ao **converter uma string em uma lista**, você poderá modificar, adicionar e remover caracteres individuais ou subseções dessa string.

## Python string to list: Métodos de conversão

Python string to list faz referência à conversão de uma string em uma lista. Ao realizar esse tipo de procedimento, você transforma uma string em uma estrutura de dados capaz de suportar **operações de lista**, ou seja, manipulações de dados.

Aqui estão alguns dos métodos mais comuns para transformar strings em listas, em Python:

### `split()`

A função [Python split](https://www.ionos.com/digitalguide/websites/web-development/python-split/ "Python split") transforma uma string em uma **lista de substrings**, com base em um separador específico ou padrão. A sintaxe geral é essa:

```python
string.split(sep=None, maxsplit=-1)
```

- `string`: Trata-se da string original.
- `sep` (opcional): Separador para a divisão da string. Se nenhum separador for especificado, o método dividirá a string em espaços em branco.
- `maxsplit` (opcional): Define o número máximo de divisões a serem feitas. Se não for especificado ou definido como -1, todas as divisões possíveis serão feitas.

Observe este exemplo de aplicação da função `split()`:

```python
text = "blue,green,yellow,red"
print(f"List of colors = {text.split(',')}")
```

Este é o resultado obtido:

```python
List of colors = ['blue', 'green', 'yellow', 'red']
```

O método f-strings tem o papel de [formatar strings em Python](https://www.ionos.com/digitalguide/websites/web-development/python-string-format/ "Formatar de strings em Python"). Ele aceita qualquer expressão como espaço reservado dentro de chaves. Portanto, é possível combinar o resultado da função `split()` com a string `"List of colors = "`.

### `list()`

A função [Python list](https://www.ionos.com/digitalguide/websites/web-development/python-list/ "Python list") é usada para converter várias estruturas de dados, incluindo strings, em listas. Quando você passa uma string como argumento para a função `list()`, **cada letra ou caractere da string é armazenado como um elemento separado** na lista resultante.

```python
text = "Hello"
char_list = list(text)
print(char_list)
# Output: ['H', 'e', 'l', 'l', 'o']
```

### List Comprehension

List Comprehension é uma forma simples de se criar listas, baseada na combinação de **loops e condições** em uma única linha.

```python
text = "Hello World"
char_list = [char for char in text]
print(char_list)
# Output: ['H', 'e', 'l', 'l', 'o', ' ', 'W', 'o', 'r', 'l', 'd']
```

No código acima estamos usando a string `"Hello World"` para criar uma lista e armazená-la em `char_list`. List Comprehension percorre cada caractere `char` na string `text` e os adiciona como elementos únicos à lista `char_list`.

### String Slicing

String Slicing é outro método para transformar uma string em lista, em Python. Ele **extrai subseções de uma string** e as armazena como elementos em uma lista.

```python
substring_list = string[start:stop:step]
```

- `start`: Índice que determina onde o fatiamento deve começar; a string começa no caractere na posição determinada.
- `stop`: Índice que determina onde o fatiamento deve terminar; a sequência termina antes do caractere na posição determinada.
- `step` (opcional): Passo ou incremento com o qual o fatiamento é feito; indica quantos caracteres devem ser pulados entre cada caractere selecionado.

```python
def convert(string):
    list1 = []
    list1[:0] = string
    return list1
str1 = "xyz"
print(convert(str1))
# Output: ['x', 'y', 'z']
```

A função personalizada `convert(string)` converte uma string em uma lista de caracteres. Quando a expressão `list1[:0] = string` é executada, os caracteres individuais da string são inseridos na lista vazia `list1`.

### `re.findall()`

A função `re.findall()` também pode ser usada como método para transformar uma string em lista, em Python. Ela **encontra todas as correspondências de uma expressão regular** em uma string e retorna-as como uma lista.

```python
import re
text = "123 and 456 are numbers."
numbers_list = re.findall(r'\d+', text)
print(numbers_list)
# Output: ['123', '456']
```

O *regex* `r'\d+'` busca por uma ou mais sequências consecutivas de dígitos em um texto e retorna cada sequência como um elemento separado em uma lista.

### `enumerate()`

A função embutida de Python, `enumerate()`, permite que você obtenha tanto o índice quanto o valor de cada elemento de uma estrutura de dados iterável. Para criar uma lista contendo apenas valores (ou seja, caracteres de uma string), você pode usar `enumerate()` em conjunto com List Comprehension:

```python
text = "Python"
char_list = [char for index, char in enumerate(text)]
print(char_list)
# Output: ['P', 'y', 't', 'h', 'o', 'n']
```

### JSON

O módulo JSON é usado para ler e gravar dados JSON, assim como para converter estruturas de dados Python para o formato JSON, e vice-versa. Ao funcionar como um método de transformar strings em listas, o módulo JSON **interpreta uma string como um objeto Python**.

```python
import json
json_string = '[1, 2, 3, 4, 5]'
list_from_json = json.loads(json_string)
print(list_from_json)
# Output: [1, 2, 3, 4, 5]
```

A função `json.loads()` interpreta a string JSON e a converte no objeto Python correspondente, neste caso, em uma lista.

### `ast.literal`

O módulo `ast` (*Abstract Syntax Trees*) permite avaliar uma string como uma estrutura de dados Python ao interpretá-la como um literal. Se você tiver uma string em um formato literal válido (como uma lista, um dicionário, um número etc.), poderá usar `ast.literal_eval()` para converter, com segurança, essa string no objeto Python correspondente.

```python
import ast
string = "[1, 2, 3, 4, 5]"
my_list = ast.literal_eval(string)
print(my_list)
# Output: [1, 2, 3, 4, 5]
```

Este artigo do nosso Digital Guide explica [como converter uma string em datetime em Python](https://www.ionos.com/pt-br/digitalguide/sites-de-internet/desenvolvimento-web/converter-python-string-em-datetime/).


This is a markdown version of: [https://www.ionos.com/pt-br/digitalguide/sites-de-internet/desenvolvimento-web/python-string-to-list/](https://www.ionos.com/pt-br/digitalguide/sites-de-internet/desenvolvimento-web/python-string-to-list/) for AI/LLM consumption.