Ajouter des dictionnaires ensemble, Python [dupliquer]
cette question a déjà une réponse ici:
j'ai deux dictionnaires et j'aimerais pouvoir en faire un:
quelque chose comme ce pseudo-Python serait bien:
dic0 = {'dic0': 0}
dic1 = {'dic1': 1}
ndic = dic0 + dic1
# ndic would equal {'dic0': 0, 'dic1': 1}
6 réponses
si vous êtes intéressé à créer un nouveau dict sans utiliser de stockage intermédiaire: (c'est plus rapide, et à mon avis, plus propre que l'utilisation de dict.items ())
dic2 = dict(dic0, **dic1)
ou si vous êtes heureux d'utiliser l'un des dicts existants:
dic0.update(dic1)
>>> dic0 = {'dic0':0}
>>> dic1 = {'dic1':1}
>>> ndic = dict(dic0.items() + dic1.items())
>>> ndic
{'dic0': 0, 'dic1': 1}
>>>
vous recherchez la méthode de mise à jour
dic0.update( dic1 )
print( dic0 )
donne
{'dic0': 0, 'dic1': 1}
Voici quelques façons d'ajouter des dictionnaires.
crée un nouveau dict en ajoutant les deux éléments.
ndic = dict(dic0.items() + dic1.items())
si votre ok pour modifier dic0
dic0.update(dic1)
Si votre PAS ok pour modifier dic0
ndic = dic0.copy()
ndic.update(dic1)
si toutes les clés d'un dict sont assurées d'être des cordes ( dic1
dans ce cas, bien sûr args peut être échangé)
ndic = dict(dic0, **dic1)
dans certains cas, il peut être pratique d'utiliser des compréhensions dict (Python 2.7 ou plus récent),
surtout si vous voulez filtrer ou transformer certaines clés/valeurs en même temps.
ndic = {k: v for d in (dic0, dic1) for k, v in d.items()}
dic0.update(dic1)
Note Ceci ne renvoie pas réellement le dictionnaire combiné, il mute juste dic0
.
veuillez rechercher le site avant de poser des questions la prochaine fois: comment concaténer deux dictionnaires pour en créer un nouveau en Python?
La meilleure façon de le faire est d'utiliser simplement votre code d'exemple, mais en utilisant les éléments() membre de chaque dictionnaire. Ainsi, le code serait:
dic0 = {'dic0': 0}
dic1 = {'dic1': 1}
dic2 = dict(dic0.items() + dic1.items())
j'ai testé ça au ralenti et ça marche très bien. Cependant, la question précédente sur ce sujet indique que cette méthode est lente et mordille mémoire. Il y a plusieurs autres façons recommandées là-bas, donc s'il vous plaît voir que si l'utilisation de la mémoire est importante.