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