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))
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))
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