He encontrado este problema varias veces y parece que no puede encontrar una solución simple. Decir que tengo una cadenaconvertir cadena a dict utilizando lista de comprensión en python
string = "a=0 b=1 c=3"
Quiero convertir esto en un diccionario con a, b y c es la clave y 0, 1, y 3 siendo sus respectivos valores (convertido a int). Obviamente, yo puedo hacer esto:
list = string.split()
dic = {}
for entry in list:
key, val = entry.split('=')
dic[key] = int(val)
pero no me gusta mucho ese bucle, Parece tan simple que usted debería ser capaz de convertirlo en una especie de expresión de lista por comprensión. Y eso funciona para casos ligeramente más simples donde el val
puede ser una cadena.
dic = dict([entry.split('=') for entry in list])
Sin embargo, necesito convertir val a un int sobre la marcha y hacer algo como esto es sintácticamente incorrecto.
dic = dict([[entry[0], int(entry[1])] for entry.split('=') in list])
Así que mi pregunta es: ¿hay alguna manera de eliminar el bucle for utilizando la lista de comprensión? Si no, ¿hay algún método de python integrado que lo haga por mí?
Nota: No utilice funciones integradas como nombres de variables ('string',' list', etc.) –