Esta pregunta ya tiene respuestas aquí:
¿Cómo fusiono una lista de dictados en un solo dictado?
(12 respuestas)
¿Cómo fusiono diccionarios en Python?
(7 respuestas)
Cerrado
hace 2 años
.
Tengo una lista grande de diccionarios, cada uno con exactamente una entrada y claves únicas, y quiero 'combinarlos' en un solo diccionario con Python 3.8.
Aquí tienes un ejemplo que realmente funciona:
mylist = [{'a':1}, {'b':2}, {'c':3}]
mydict = {list(x.keys())[0]:list(x.values())[0] for x in mylist}
lo que da como resultado el resultado esperado:
{'a': 1, 'b': 2, 'c': 3}
Pero se ve feo y no del todo pitónico. ¿Existe una mejor solución unifilar para este problema?
Esto es similar a la pregunta formulada AQUÍ, pero en mi ejemplo estoy buscando una respuesta (1) para fusionar muchos dictados y (2) una solución de una sola línea. Eso hace que mi pregunta sea diferente de la pregunta ya formulada.
¿También viste el segundo duplicado…? stackoverflow.com/q/3494906/476
- deceze
♦
19 de marzo de 2021 a las 12:23
------------------------------------
mydict = { k:v for elt in mylist for k, v in elt.items()}
------------------------------------
Prueba esto, simple y efectivo.
mylist = [{'a':1}, {'b':2}, {'c':3}]
result = {}
for d in mylist:
result.update(d)
Resultado
{'a': 1, 'b': 2, 'c': 3}