Le liste sono oggetti mo­di­fi­ca­bi­li, mentre le stringhe in Python sono im­mu­ta­bi­li. Grazie alla con­ver­sio­ne di una stringa in una lista è possibile mo­di­fi­ca­re, ag­giun­ge­re o rimuovere singoli caratteri o sot­to­se­zio­ni della stringa.

Web Hosting
Diventa il n°1 della rete con il provider di hosting n°1 in Europa
  • Di­spo­ni­bi­li­tà garantita al 99,99%
  • Dominio, SSL ed e-mail inclusi
  • As­si­sten­za 24/7 in lingua italiana

Da stringa a lista in Python: i metodi di con­ver­sio­ne

Per con­ver­ti­re una stringa in una lista in Python è ne­ces­sa­rio tra­sfor­ma­re la stringa in una struttura di dati che deve sup­por­ta­re le ope­ra­zio­ni sulle liste e quindi con­sen­ti­re una ma­ni­po­la­zio­ne avanzata dei dati.

Nelle parti seguenti ti mostriamo i metodi più diffusi per con­ver­ti­re una stringa in una lista.

split()

Il metodo split in Python scompone una stringa in una lista di sot­to­strin­ghe basandosi su un de­ter­mi­na­to se­pa­ra­to­re o modello. La sintassi generale è la seguente:

string.split(sep=None, maxsplit=-1)
python
  • string: questa è la stringa originale.
  • sep (opzionale): questo è il se­pa­ra­to­re in cor­ri­spon­den­za del quale dividere la stringa. Se non si indica nessun se­pa­ra­to­re, il metodo divide la stringa in cor­ri­spon­den­za degli spazi.
  • maxsplit (opzionale): maxsplit definisce il numero massimo di divisioni da eseguire. Se non indicato o se l’im­po­sta­zio­ne è -1, vengono eseguite tutte le divisioni possibili.

Esempio:

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

Il risultato è il seguente:

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

Le f-string sono un metodo di for­mat­ta­zio­ne delle stringhe in Python che accetta un’espres­sio­ne a piacere come se­gna­po­sto fra le parentesi graffe. Pertanto possiamo collegare il risultato della funzione split() con la stringa ”List of colors = “.

list()

La funzione list in Python serve a con­ver­ti­re diverse strutture di dati, comprese le stringhe, in liste. As­se­gnan­do una stringa come argomento alla funzione list(), ogni lettera oppure ogni carattere della stringa viene me­mo­riz­za­to come elemento separato nella lista ri­sul­tan­te.

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

List com­pre­hen­sion

Il metodo list com­pre­hen­sion è un modo per creare liste com­bi­nan­do cicli e con­di­zio­ni in un’unica riga.

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

In questo esempio uti­liz­zia­mo la stringa "Hello World" per creare una lista e me­mo­riz­zar­la in char_list. Il metodo list com­pre­hen­sion prende in esame ogni lettera char nella stringa text e la aggiunge come singolo elemento alla lista char_list.

String slicing

Lo string slicing è un altro metodo per con­ver­ti­re una stringa in una lista in Python che estrae sot­to­se­quen­ze di una stringa e le memorizza in una lista sotto forma di elementi.

substring_list = string[start:stop:step]
python
  • start: l’indice da cui ha inizio lo slicing. La parte di stringa inizia dal carattere che si trova in questa posizione.
  • stop: l’indice dove termina lo slicing. La sequenza termina prima del carattere che si trova in questa posizione.
  • step (opzionale): il passo con cui si esegue lo slicing. Indica quanti caratteri lasciare fra ciascun carattere se­le­zio­na­to.
def convert(string):
    list1 = []
    list1[:0] = string
    return list1
str1 = "xyz"
print(convert(str1))
# Output: ['x', 'y', 'z']
python

Il metodo convert(string) è una funzione definita dall’utente che converte una stringa in una lista di caratteri. Se si esegue l’espres­sio­ne list1[:0] = string, i singoli caratteri della stringa vengono inseriti nella lista vuota list1.

re.findall()

La funzione re.findall() è uti­liz­za­bi­le come metodo in Python per eseguire la con­ver­sio­ne da stringa a lista e permette di trovare tutte le cor­ri­spon­den­ze di un’espres­sio­ne regolare in una stringa re­sti­tuen­do­le sotto forma di lista.

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

L’espres­sio­ne regolare r'\d+' cerca una o più cifre con­se­cu­ti­ve nel testo e le re­sti­tui­sce come elementi separati in una lista.

enumerate()

La funzione enumerate() è integrata in Python e serve a ottenere l’indice e il valore di ciascun elemento di una struttura di dati iterabile. Se desideri che la lista contenga solo i valori (ossia i caratteri della stringa), puoi uti­liz­za­re enumerate() in com­bi­na­zio­ne con il metodo list com­pre­hen­sion:

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

JSON

JSON è un modulo che puoi uti­liz­za­re per la lettura e la scrittura di dati JSON e per la con­ver­sio­ne da strutture di dati Python al formato JSON e viceversa. Per la funzione di con­ver­sio­ne da stringa a lista in Python il modulo JSON offre la pos­si­bi­li­tà di eseguire il parsing di una stringa per ottenere un oggetto Python cor­ri­spon­den­te.

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

La funzione json.loads() analizza la stringa JSON e la converte in un oggetto Python cor­ri­spon­den­te: in questo caso, in una lista.

ast.literal

Il modulo ast (Abstract Syntax Trees) ti permette di valutare una stringa in una struttura di dati Python. A tal fine la stringa viene in­ter­pre­ta­ta come un literal di Python. Se hai una stringa in un formato literal di Python valido (ad esempio una lista, un di­zio­na­rio, un numero, ecc.), puoi uti­liz­za­re ast.literal_eval() per tra­sfor­mar­la in modo sicuro nell’oggetto Python cor­ri­spon­den­te.

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

Nella nostra guida troverai inoltre spie­ga­zio­ni sul fun­zio­na­men­to della con­ver­sio­ne da stringa al modulo datetime in Python.

Vai al menu prin­ci­pa­le