Maison > développement back-end > Tutoriel Python > Comment puis-je combiner pythoniquement deux dictionnaires, en additionnant les valeurs des clés communes ?

Comment puis-je combiner pythoniquement deux dictionnaires, en additionnant les valeurs des clés communes ?

Susan Sarandon
Libérer: 2024-12-10 17:23:16
original
260 Les gens l'ont consulté

How Can I Pythonically Combine Two Dictionaries, Summing Values for Common Keys?

Combiner deux dictionnaires de manière pythonique

Souvent, lorsque nous travaillons avec des dictionnaires en Python, nous devons fusionner plusieurs dictionnaires en un seul. Une exigence courante dans de tels scénarios est de combiner les dictionnaires, en ajoutant des valeurs pour les clés qui apparaissent dans les deux.

Par exemple, considérons les deux dictionnaires suivants :

Dict A: {'a': 1, 'b': 2, 'c': 3}
Dict B: {'b': 3, 'c': 4, 'd': 5}
Copier après la connexion

Notre objectif est de fusionner ces dictionnaires pour obtenir le résultat suivant :

{'a': 1, 'b': 5, 'c': 7, 'd': 5}
Copier après la connexion

En d'autres termes, si une clé apparaît dans les deux dictionnaires, leurs valeurs doivent être résumées, tandis que les clés qui n'existent que dans un seul dictionnaire doivent conserver leurs valeurs d'origine.

Une façon élégante d'y parvenir en Python consiste à exploiter la classe Counter du module collections :

from collections import Counter

A = Counter({'a': 1, 'b': 2, 'c': 3})
B = Counter({'b': 3, 'c': 4, 'd': 5})
result = A + B
Copier après la connexion

La classe Counter étend les fonctionnalités d'un dictionnaire en fournissant un moyen simple de suivre le nombre d’occurrences (comptes) de valeurs. Dans notre cas, nous créons des objets Counter pour les deux dictionnaires, puis utilisons l'opérateur pour les combiner. Le résultat est un nouvel objet Counter dans lequel les décomptes des clés correspondantes sont accumulés. La reconversion de l'objet Counter en dictionnaire nous donne le dictionnaire combiné souhaité.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal