Python - Añadir cada uno de los elementos de una lista a los valores de un diccionario python(por compresion)

   
Vista:
Imágen de perfil de Pablo

Añadir cada uno de los elementos de una lista a los valores de un diccionario python(por compresion)

Publicado por Pablo (2 intervenciones) el 15/12/2017 15:50:56
web

¿Alguien podría ayudarme a resolver este ejercicio?Se lo agradecería un montón

Debería utilizar listas por compresión para resolver el ejerfcicio
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de abzerox

Añadir cada uno de los elementos de una lista a los valores de un diccionario python(por compresion)

Publicado por abzerox (57 intervenciones) el 15/12/2017 23:40:28
Hola Pablo, una posible solución seria la siguiente:
1
2
3
d = {1:'Roma', 2:'Milán',  3: 'Nápoles'}
pob = [2718768, 1299633, 9731312]
l = { k: [v, pob[k - 1]] for k, v in d.items() }

Expliquemos ahora como es que funciona:
Primero utilizo el método dict.items() el cual retorna un objeto dict_items, a través del cual utilizando la estructura de control for itero sobre el mismo obteniendo en cada iteración una tupla de la forma (clave, valor) donde k corresponde a la clave y v al valor.

Ejemplo, si simulamos la primera itearción obtenemos:
1
2
k = 1
v = 'Roma'
Luego se ejecuta la parte izquierda de la comprensión (diccionario por comprensión):
1
k: [v, pob[k - 1]]
En si lo que hace esto es crear una clave k en el nuevo dict, dando como valor incial una lista que en el primer campo guardara el nombre de la ciudad y como segundo valor tomara de la lista pob el elemento que se encuentra en el indice (k-1) ya que k comienza en 1 y el indice de la lista en 0 por eso aplico esta simple resta.

Esepero se entienda, sino comentanos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
3
Comentar
Imágen de perfil de kip

Añadir cada uno de los elementos de una lista a los valores de un diccionario python(por compresion)

Publicado por kip (223 intervenciones) el 16/12/2017 15:28:45
Hola, aqui te va algo tambien, para que tengas otra opcion ademas de la de abzerox:

1
l = {d[0]:[d[1], p] for d, p in zip(d.items(), pob)}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar
Revisar política de publicidad