La funzione literal_eval
Per convertire un'espressione da stringa alfanumerica a lista ( o tupla ) utilizzo la funzione literal_eval della libreria ast.
from ast import literal_eval
y=literal_eval(x)
Dove x è l'espressione in formato stringa da trasformare in lista.
Un esempio pratico
Assegno alla variabile x una stringa contenente l'espressione logica di una lista di liste.
x='[[2,-1,0],[1,1,1],[0,1,-1]]'
Il valore destro della variabile è tra apici. Quindi, si tratta di una stringa. Non è una lista.
Per convertirlo in una lista, carico in memoria la funzione literal_eval() del modulo ast.
from ast import literal_eval
Poi la uso per trasformare il valore destro della variabile x da stringa a lista.
Il risultato finale lo assegno alla variabile y.
y=literal_eval(x)
Il valore della variabile y è il seguente:
[[2, -1, 0], [1, 1, 1], [0, 1, -1]]
Questo valore non è racchiuso tra apici o doppi apici. Pertanto, è una lista.
Ho convertito la stringa in lista
Posso utilizzare lo stesso metodo anche per convertire le espressioni da formato stringa in tupla o dizionario.
E così via.