A veces, nos alimentan con strings y es posible que tengamos que convertir su contenido al diccionario. La string puede tener un formato específico que podría convertirse en clave-valor. Este tipo de problema es bastante común en el dominio de Machine Learning. Analicemos ciertas formas en que se puede resolver este problema.
Método n.º 1: usar split()
+ comprensión del diccionario
La combinación del método anterior se puede usar para realizar esta tarea en particular. Este es el método de 2 procesos. En el primer paso, la string se convierte en una lista mediante la división y luego se vuelve a convertir en un diccionario mediante la comprensión del diccionario.
# Python3 code to demonstrate working of # Converting String content to dictionary # Using dictionary comprehension + split() # initializing string test_str = "Gfg = 1, Good = 2, CS = 3, Portal = 4" # printing original string print("The original string is : " + test_str) # Using dictionary comprehension + split() # Converting String content to dictionary res = {key: int(val) for key, val in (item.split('=') for item in test_str.split(', '))} # printing result print("The newly created dictionary : " + str(res))
The original string is : Gfg = 1, Good = 2, CS = 3, Portal = 4 The newly created dictionary : {' CS ': 3, 'Gfg ': 1, ' Portal ': 4, ' Good ': 2}
Método n.º 2: usoeval()
Este problema en particular se puede resolver mediante la función incorporada eval
que evalúa internamente la string y la convierte en un diccionario según la condición.
# Python3 code to demonstrate working of # Converting String content to dictionary # Using eval() # initializing string test_str = "Gfg = 1, Good = 2, CS = 3, Portal = 4" # printing original string print("The original string is : " + test_str) # Using eval() # Converting String content to dictionary res = eval('dict(% s)' % test_str) # printing result print("The newly created dictionary : " + str(res))
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