# Python string to list: como converter strings em listas

Em Python, as listas são objetos mutáveis, enquanto as cadeias são imutáveis. Ao **converter uma cadeia numa lista**, pode modificar, adicionar ou eliminar caracteres individuais ou subseções da cadeia.

## Python string para lista: métodos de conversão

Por «Python string to list» entende-se a conversão de uma cadeia de caracteres numa lista. Neste processo, a cadeia é transformada numa estrutura de dados que suporta **operações com listas**, o que permite vários tipos de manipulação de dados.

A seguir, apresentamos os métodos mais comuns para converter uma cadeia de texto numa lista:

### split()

O método Python split é responsável por dividir uma cadeia numa **lista de subcadeias** com base num separador ou padrão específico. Esta é geralmente a sua sintaxe:

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

- `string`: é a cadeia original.
- `sep` (opcional): é o separador em que a cadeia é dividida. Se nenhum separador for especificado, o método divide a cadeia em espaços.
- `maxsplit` (opcional): define o número máximo de divisões a serem realizadas. Se não for especificado ou for definido como -1, todas as divisões possíveis serão realizadas.

Este exemplo

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

resulta em

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

As f strings são um método do Python string format e permitem incluir qualquer expressão como marcador de posição entre chaves. Assim, neste caso, é possível unir o resultado da função `split()` com a cadeia `"List of colors = "` (lista de cores).

### list()

A função Python list é utilizada para converter diferentes estruturas de dados, incluindo cadeias, em listas. Ao passar uma cadeia como argumento para a função `list()`, **cada letra ou caractere da cadeia é armazenado como um elemento independente** na lista resultante.

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

### Compreensão de listas

A função List Comprehension é uma forma concisa de criar listas combinando **loops e condições** numa única linha de código. Por exemplo:

```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']
```

Neste caso, foi utilizada a cadeia `"Hello World"`. A partir dela, foi criada uma lista e armazenada em `char_list`. A List Comprehension percorreu então cada letra `char` da cadeia `text` e adicionou-a como um único elemento à lista `char_list`.

### Corte de cadeias

O string slicing ou corte de cadeia é outro dos métodos Python string to list. Ele se encarrega de extrair as **sequências parciais de uma cadeia** e guardá-las como elementos de uma lista.

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

- `start`: o índice em que começa o corte; a parte da cadeia começa no caractere situado nesta posição.
- `stop`: o índice em que termina o corte; a sequência termina antes do caractere localizado nesta posição.
- `step` (opcional): o passo ou incremento com que o corte é realizado; especifica quantos caracteres são omitidos entre cada caractere selecionado.

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

`convert(string)` é uma **função personalizada** que converte uma cadeia de caracteres numa lista de caracteres. Quando a expressão `list1[:0] = string` é executada, cada caractere da cadeia é adicionado à lista vazia `list1`.

### re.findall()

A função `re.findall()` é um método Python string to list que pode ser usado para encontrar **todas as correspondências de uma expressão regular** numa cadeia e devolvê-las 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']
```

A expressão regular `r'\d+'` procura um ou mais dígitos consecutivos no texto e os retorna como elementos separados numa lista.

### enumerar()

`enumerate()` é uma função integrada do Python que serve para obter tanto o índice como o valor de cada elemento numa estrutura de dados iterável. Se quiser que a lista contenha apenas os valores (ou seja, os caracteres da cadeia), pode aplicar `enumerate()` juntamente com uma List Comprehension, conforme mostrado a seguir:

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

### JSON

JSON é um módulo utilizado para ler e escrever dados JSON e para converter estruturas de dados Python no formato JSON e vice-versa. Com a função Python string to list, o módulo JSON permite **converter uma string num objeto Python** que poderá utilizar no seu código.

```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()` analisa a cadeia JSON e converte-a num objeto Python correspondente, neste caso uma lista.

### ast.literal

O módulo `ast` (Abstract Syntax Trees) permite avaliar uma cadeia numa estrutura de dados Python em que a cadeia é interpretada como um literal Python. Se tiver uma cadeia num formato literal Python válido (por exemplo, uma lista, um dicionário, um número, etc.), pode utilizar `ast.literal_eval()` para converter essa cadeia no objeto Python correspondente de forma segura.

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

No Guia Digital também explicamos como converter [string para datetime](https://www.ionos.com/pt-pt/digitalguide/paginas-web/desenvolvimento-web/python-string-to-datetime-chaves-da-conversao/).


This is a markdown version of: [https://www.ionos.com/pt-pt/digitalguide/paginas-web/desenvolvimento-web/python-string-para-lista/](https://www.ionos.com/pt-pt/digitalguide/paginas-web/desenvolvimento-web/python-string-para-lista/) for AI/LLM consumption.