Python | Convertir string de tipo heterogéneo a lista

A veces, mientras trabajamos con datos, podemos tener un problema en el que necesitamos convertir datos en una string en una lista, y la string contiene elementos de diferentes tipos de datos como booleanos. Este problema puede ocurrir en dominios en los que se utilizan muchos tipos de datos. Analicemos ciertas formas en que se puede resolver este problema.

Método n.º 1: Uso de la comprensión de listas + split() + strip() 
La combinación de los métodos anteriores se puede utilizar para resolver este problema. En esto, realizamos la división de elementos y luego eliminamos el carácter extraviado para convertir tipos de datos y compilar toda la lógica de construcción de listas utilizando la comprensión de listas.

Python3

# Python3 code to demonstrate working of
# Convert String of Heterogeneous types to List
# using list comprehension + split() + strip()
  
# initializing string 
test_str = "'gfg', 'is', True, 'best', False"
  
# printing original string 
print("The original string is : " + test_str)
  
# Convert String of Heterogeneous types to List
# using list comprehension + split() + strip()
res = [ele.strip() if ele.strip().startswith("'") else ele == 'True'
      for ele in test_str.split(', ')]
  
# printing result
print("List after conversion from string : " + str(res))
Producción : 

The original string is : 'gfg', 'is', True, 'best', False
List after conversion from string : ["'gfg'", "'is'", True, "'best'", False]

 

Método #2: Usar eval() 
Esta función incorporada detecta automáticamente el tipo de datos y realiza la conversión. Es una solución de frase única y también proporciona una solución incluso si los números enteros están en string y, por lo tanto, se recomienda para esta solución.

Python3

# Python3 code to demonstrate working of
# Convert String of Heterogeneous types to List
# using eval()
  
# initializing string 
test_str = "'gfg', 'is', True, 'best', False, 1, 2"
  
# printing original string 
print("The original string is : " + test_str)
  
# Convert String of Heterogeneous types to List
# using eval()
res = list(eval(test_str))
  
# printing result
print("List after conversion from string : " + str(res))
Producción : 

The original string is : 'gfg', 'is', True, 'best', False, 1, 2
List after conversion from string : ["'gfg'", "'is'", True, "'best'", False, 1, 2]

 

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 *