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 ca­rac­te­res in­di­vi­du­ais 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 ca­rac­te­res numa lista. Neste processo, a cadeia é trans­for­mada numa estrutura de dados que suporta operações com listas, o que permite vários tipos de ma­ni­pu­la­ção de dados.

A seguir, apre­sen­ta­mos os métodos mais comuns para converter uma cadeia de texto numa lista:

split()

O método Python split é res­pon­sá­vel por dividir uma cadeia numa lista de sub­ca­deias com base num separador ou padrão es­pe­cí­fico. Esta é ge­ral­mente a sua sintaxe:

string.split(sep=None, maxsplit=-1)
python
  • string: é a cadeia original.
  • sep (opcional): é o separador em que a cadeia é dividida. Se nenhum separador for es­pe­ci­fi­cado, o método divide a cadeia em espaços.
  • maxsplit (opcional): define o número máximo de divisões a serem re­a­li­za­das. Se não for es­pe­ci­fi­cado ou for definido como -1, todas as divisões possíveis serão re­a­li­za­das.

Este exemplo

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

resulta em

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

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 di­fe­ren­tes es­tru­tu­ras de dados, incluindo cadeias, em listas. Ao passar uma cadeia como argumento para a função list(), cada letra ou caractere da cadeia é ar­ma­ze­nado como um elemento in­de­pen­dente na lista re­sul­tante.

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

Com­pre­en­são de listas

A função List Com­prehen­sion é uma forma concisa de criar listas com­bi­nando loops e condições numa única linha de código. Por exemplo:

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

Neste caso, foi utilizada a cadeia "Hello World". A partir dela, foi criada uma lista e ar­ma­ze­nada em char_list. A List Com­prehen­sion 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ên­cias parciais de uma cadeia e guardá-las como elementos de uma lista.

substring_list = string[start:stop:step]
python
  • 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 lo­ca­li­zado nesta posição.
  • step (opcional): o passo ou in­cre­mento com que o corte é realizado; es­pe­ci­fica quantos ca­rac­te­res são omitidos entre cada caractere se­le­ci­o­nado.
def convert(string):
    list1 = []
    list1[:0] = string
    return list1
str1 = "xyz"
print(convert(str1))
# Output: ['x', 'y', 'z']
python

convert(string) é uma função per­so­na­li­zada que converte uma cadeia de ca­rac­te­res numa lista de ca­rac­te­res. Quando a expressão list1[:0] = string é executada, cada caractere da cadeia é adi­ci­o­nado à 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 cor­res­pon­dên­cias de uma expressão regular numa cadeia e devolvê-las como uma lista.

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

A expressão regular r'\d+' procura um ou mais dígitos con­se­cu­ti­vos 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 ca­rac­te­res da cadeia), pode aplicar enumerate() jun­ta­mente com uma List Com­prehen­sion, conforme mostrado a seguir:

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

JSON

JSON é um módulo utilizado para ler e escrever dados JSON e para converter es­tru­tu­ras 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.

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]
python

A função json.loads() analisa a cadeia JSON e converte-a num objeto Python cor­res­pon­dente, 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 é in­ter­pre­tada como um literal Python. Se tiver uma cadeia num formato literal Python válido (por exemplo, uma lista, um di­ci­o­ná­rio, um número, etc.), pode utilizar ast.literal_eval() para converter essa cadeia no objeto Python cor­res­pon­dente de forma segura.

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

No Guia Digital também ex­pli­ca­mos como converter string para datetime. 48ad351df531a73c248bc5b7d38e1fa6

Ir para o menu principal