Dictionary in python es una estructura de datos muy útil y en muchas ocasiones vemos problemas al convertir una string en un diccionario.
Entonces, analicemos cómo podemos abordar este problema.
Método n.° 1: Usar eval()
Si obtenemos una entrada de string que se parece completamente a un objeto de diccionario (si la string se parece a un diccionario como en python), entonces podemos convertirla fácilmente a diccionario usando
eval() en Python.
# Python3 code to convert # a string to a dictionary # Initializing String string = "{'A':13, 'B':14, 'C':15}" # eval() convert string to dictionary Dict = eval(string) print(Dict) print(Dict['A']) print(Dict['C'])
{'C': 15, 'B': 14, 'A': 13} 13 15
Método # 2: Uso de expresiones generadoras en Python
Si obtenemos una entrada de string que no se parece completamente a un objeto de diccionario, entonces podemos usar expresiones generadoras para convertirlo en un diccionario.
# Python3 code to convert # a string to a dictionary # Initializing String string = "A - 13, B - 14, C - 15" # Converting string to dictionary Dict = dict((x.strip(), y.strip()) for x, y in (element.split('-') for element in string.split(', '))) print(Dict) print(Dict['A']) print(Dict['C'])
{'C': '15', 'A': '13', 'B': '14'} 13 15
El código dado arriba no convierte enteros a un tipo int,
si las claves de números enteros están ahí , entonces solo la línea 8 funcionaría
string = "11 - 13, 12 - 14, 13 - 15" Dict = dict((x.strip(), int(y.strip())) for x, y in (element.split('-') for element in string.split(', '))) print(Dict)
{'13': 15, '12': 14, '11': 13}
Publicación traducida automáticamente
Artículo escrito por samy_coder y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA