Analizar cadena a lista en Python
-
Analizar cadena a lista con la función
str.split()
en Python -
Analizar cadena a lista con la función
str.strip()
en Python -
Analizar cadena a lista con la función
json.loads()
en Python -
Analizar cadena a lista con la función
ast.literal_eval()
en Python
En este tutorial, aprenderemos los métodos para analizar una cadena en una lista en Python.
Analizar cadena a lista con la función str.split()
en Python
Si en un escenario, tenemos una representación de cadena de una lista como '[ "A","B","C" , " D"]'
y queremos convertir esa representación en una lista real de cadenas, podemos utilice la función str.split()
para dividir la cadena sobre la base de cada ,
. La función str.split()
toma un delimitador / separador como parámetro de entrada, divide la cadena de llamada en función del delimitador y devuelve una lista de subcadenas. El siguiente ejemplo de código nos muestra cómo analizar una representación de cadena de una lista en una lista real con la función str.split()
.
stringlist = '[ "A","B","C" , " D"]'
print(stringlist.split(","))
Producción :
['[ "A"', '"B"', '"C" ', ' " D"]']
Convertimos la cadena stringlist
en una lista dividiéndola en función de ,
con la función stringlist.split(",")
. Como se desprende del resultado, este enfoque tiene varios problemas y no cumple adecuadamente con nuestros requisitos.
Analizar cadena a lista con la función str.strip()
en Python
Para convertir aún más una cadena como esta en una lista, podemos usar la función str.strip()
. Esta función str.strip()
también toma el delimitador / separador como parámetro de entrada, elimina la cadena de llamada en función del delimitador y devuelve una lista de subcadenas mucho más limpias. El código de muestra a continuación nos muestra cómo analizar una representación de cadena de una lista en una lista real con la función str.strip()
.
stringlist = '[ "A","B","C" , " D"]'
print(stringlist.strip(","))
Producción :
[ "A","B","C" , " D"]
Convertimos la cadena stringlist
en una lista dividiéndola sobre la base de ,
con la función stringlist.split(",")
. Obtenemos una lista de cadenas mucho más limpia en esta ocasión. La única desventaja de este enfoque es que hay algunos espacios en blanco no deseados como el espacio en el cuarto elemento de la lista.
Analizar cadena a lista con la función json.loads()
en Python
También podemos usar el módulo json
para nuestro problema específico. La función json.loads()
toma un objeto JSON como parámetro, deserializa el objeto JSON y devuelve los resultados en una lista. El parámetro del objeto JSON, en este caso, también puede ser una cadena. El código de muestra a continuación nos muestra cómo analizar una representación de cadena de una lista en una lista real con la función json.loads()
.
import json
stringlist = '[ "A","B","C" , " D"]'
print(json.loads(stringlist))
Producción :
['A', 'B', 'C', ' D']
Convertimos nuestra cadena stringlist
en una lista más limpia con la función json.loads(stringlist)
en Python. La única diferencia entre la función json.loads()
y nuestros enfoques anteriores es que no tenemos que especificar ningún carácter delimitador o separador aquí. La función json.loads()
determina automáticamente el delimitador por nosotros. Este método también contiene el problema de los espacios en blanco no deseados.
Analizar cadena a lista con la función ast.literal_eval()
en Python
Otro método para resolver nuestro problema específico es el módulo ast
. La función ast.literal_eval()
toma una representación de cadena de una estructura literal de Python como tuplas, diccionarios, listas y conjuntos. Si pasamos la cadena a esa estructura literal, devuelve los resultados. En nuestro caso, tenemos una representación de cadena de una lista. Entonces, la función ast.literal_eval()
toma esta cadena, la analiza en una lista y devuelve los resultados. El siguiente fragmento de código nos muestra cómo analizar una representación de cadena de una lista en una lista real con la función ast.literal_eval()
.
import ast
stringlist = '[ "A","B","C" , " D"]'
print(ast.literal_eval(stringlist))
Producción :
['A', 'B', 'C', ' D']
Convertimos la cadena stringlist
en una lista más limpia con la función ast.literal_eval()
en Python. Al igual que en el enfoque anterior, no tenemos que especificar un delimitador o un separador. También similar al enfoque anterior, este método tiene el mismo problema de espacios en blanco no deseados. Pero estos espacios en blanco se pueden eliminar fácilmente.
Maisam is a highly skilled and motivated Data Scientist. He has over 4 years of experience with Python programming language. He loves solving complex problems and sharing his results on the internet.
LinkedInArtículo relacionado - Python String
- Eliminar comas de cadena en Python
- Cómo comprobar si una cadena está vacía de forma ptónica
- Convertir una cadena en nombre de variable en Python
- Cómo eliminar los espacios en blanco de una cadena en Python
- Cómo extraer números de una cadena en Python
- Cómo convertir una cadena a datetime en Python
Artículo relacionado - Python List
- Convertir un diccionario en una lista en Python
- Eliminar todas las apariciones de un elemento de una lista en Python
- Eliminar duplicados de una lista en Python
- Cómo obtener el promedio de una lista en Python
- ¿Cuál es la diferencia entre los métodos de lista que añaden y amplían
- Cómo convertir una lista en cadena en Python