Python | Convertir string de lista en diccionario

Otro problema más relacionado con la interconversión entre tipos de datos es la conversión de strings de listas en un diccionario de claves y valores. Este problema particular puede ocurrir en los lugares donde necesitamos una gran cantidad de datos de string para convertirlos en diccionarios para el preprocesamiento en el dominio de Machine Learning. Analicemos ciertas formas en que se puede realizar esta tarea.

Método #1: Usar la comprensión del diccionario + La comprensiónsplit()
del diccionario se puede usar para la construcción del diccionario y la función de división se puede usar para realizar las divisiones necesarias en la lista para obtener la clave válida y el par de valores para el diccionario.

# Python3 code to demonstrate
# Converting list string to dictionary 
# Using dictionary comprehsion + split()
  
# initializing string
test_string = '[Nikhil:1, Akshat:2, Akash:3]'
  
# printing original string
print("The original string : " + str(test_string))
  
# using dictionary comprehsion + split()
# Converting list string to dictionary 
res = {sub.split(":")[0]: sub.split(":")[1] for sub in test_string[1:-1].split(", ")}
  
# print result
print("The dictionary after extraction is : " + str(res))
Producción :

The original string : [Nikhil:1, Akshat:2, Akash:3]
The dictionary after extraction is : {'Nikhil': '1', 'Akash': '3', 'Akshat': '2'}

Método #2: Usareval() + replace()
Esta tarea en particular también se puede realizar usando la combinación de las dos funciones anteriores, las funciones eval y replace. En este método, la función eval funciona como la comprensión del diccionario, la construcción del diccionario y la función replace realiza los reemplazos necesarios. Esta función se utiliza cuando las claves y los valores deben convertirse a enteros.

# Python3 code to demonstrate
# Converting list string to dictionary 
# Using eval() + replace()
  
# initializing string
test_string = '[120:1, 190:2, 140:3]'
  
# printing original string
print("The original string : " + str(test_string))
  
# using eval() + replace()
# Converting list string to dictionary 
res = eval(test_string.replace("[", "{").replace("]", "}"))
  
# print result
print("The dictionary after extraction is : " + str(res))
Producción :

The original string : [120:1, 190:2, 140:3]
The dictionary after extraction is : {120: 1, 140: 3, 190: 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 *