Analizar cadena a lista en Python

Muhammad Maisam Abbas 30 enero 2023
  1. Analizar cadena a lista con la función str.split() en Python
  2. Analizar cadena a lista con la función str.strip() en Python
  3. Analizar cadena a lista con la función json.loads() en Python
  4. Analizar cadena a lista con la función ast.literal_eval() en Python
Analizar cadena a lista 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.

Muhammad Maisam Abbas avatar Muhammad Maisam Abbas avatar

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.

LinkedIn

Artículo relacionado - Python String

Artículo relacionado - Python List