¿Cómo crear una lista de dictados en un solo dictado con Python?

CorePress2024-01-16  8

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} 

Su guía para un futuro mejor - libreflare
Su guía para un futuro mejor - libreflare