Python | Convertir lista de string a lista de lista

Muchas veces, nos encontramos con los datos volcados que se encuentran en el formato de string y requerimos que se representen en el formato de lista real en el que realmente se encontraron. Este tipo de problema de volver a convertir una lista representada en formato de string en una lista para realizar tareas es bastante común en el desarrollo web. Analicemos ciertas formas en que esto se puede realizar. 

Método #1: Usando strip() + split() Una combinación de función strip y split puede realizar una tarea particular. La función de tira se puede usar para deshacerse de los corchetes y la función de división puede hacer que la lista de datos esté separada por comas. 

Python3

# Python3 code to demonstrate
# to convert list of string to list of list
# using strip() + split()
 
# initializing list
test_list = ['[1, 4, 5]', '[4, 6, 8]']
 
# printing original list
print (& quot
        The original list is : & quot
        + str(test_list))
 
# using strip() + split()
# to convert list of string to list of list
res = [i.strip(& quot
                [] & quot
                ).split("
                       , & quot
                       ) for i in test_list]
 
# printing result
print (& quot
        The list after conversion is : & quot
        + str(res))

Producción :

The original list is : ['[1, 4, 5]', '[4, 6, 8]']
The list after conversion is : [['1', ' 4', ' 5'], ['4', ' 6', ' 8']]

Método n.° 2: Uso de segmentación de lista y split() La tarea realizada en el método anterior también se puede realizar utilizando la segmentación de lista en la que cortamos todos los elementos del segundo al penúltimo elemento, por lo que omitimos los últimos corchetes. 
 

Python3

# Python3 code to demonstrate
# to convert the list of string to list of list
# using list slicing + split()
 
# initializing list
test_list = ['[1, 4, 5]', '[4, 6, 8]']
 
# printing original list
print (& quot
        The original list is : & quot
        + str(test_list))
 
# using list slicing + split()
# to convert list of string to list of list
res = [i[1: -1].split(', ') for i in test_list]
 
# printing result
print (& quot
        The list after conversion is : & quot
        + str(res))

Producción :

The original list is : ['[1, 4, 5]', '[4, 6, 8]']
The list after conversion is : [['1', ' 4', ' 5'], ['4', ' 6', ' 8']]

Método n.º 3: uso de re.findall y comprensión de listas Esta tarea se puede realizar utilizando la comprensión de listas para iterar sobre la lista y la función re.findall para hacer una lista con todos los elementos que coincidan con el patrón. 

Python3

# Python3 code to demonstrate
# to convert list of string to list of list
# using list comprehension + re.findall
import re
# initializing list
test_list = ['[1, 4, 5]', '[4, 6, 8]']
 
# printing original list
print("The original list is : " + str(test_list))
 
# using list comprehension + re.findall
# to convert list of string to list of list
res = [re.findall('[0-9]', i) for i in test_list]
 
# printing result
print("The list after conversion is : " + str(res))

Producción:

The original list is : ['[1, 4, 5]', '[4, 6, 8]']
The list after conversion is : [['1', '4', '5'], ['4', '6', '8']]

Método #4: Uso del método loop + eval() Esta tarea se puede realizar con la ayuda de estas funciones. Loop se usa para iterar sobre la lista y eval se usa para analizar la expresión presente en la string. 

Python3

# Python3 code to demonstrate
# to convert list of string to list of list
# using loop + eval functions
import re
# initializing list
test_list = ['[1, 4, 5]', '[4, 6, 8]']
 
# printing original list
print("The original list is : " + str(test_list))
 
# using loop + eval functions
# to convert list of string to list of list
for i in range(len(test_list)):
    test_list[i] = eval(test_list[i])
 
# printing result
print("The list after conversion is : " + str(test_list))

Producción:

The original list is : ['[1, 4, 5]', '[4, 6, 8]']
The list after conversion is : [[1, 4, 5], [4, 6, 8]]

Publicación traducida automáticamente

Artículo escrito por manjeet_04 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *