Maison > développement back-end > Tutoriel Python > Comment puis-je fusionner efficacement deux dictionnaires en Python ?

Comment puis-je fusionner efficacement deux dictionnaires en Python ?

Barbara Streisand
Libérer: 2024-12-22 17:24:11
original
1003 Les gens l'ont consulté

How Can I Efficiently Merge Two Dictionaries in Python?

Comment fusionner deux dictionnaires dans une seule expression en Python ?

Problème :

Fusionner deux dictionnaires dans un nouveau dictionnaire, les valeurs du deuxième dictionnaire écrasant celles du d'abord.

Solutions possibles :

Dans Python 3.9.0 ou version ultérieure :

z = x | y
Copier après la connexion

Dans Python 3.5 ou supérieur :

z = {**x, **y}
Copier après la connexion

En Python 2, 3.4 ou inférieur :

def merge_two_dicts(x, y):
    z = x.copy()  # Start with keys and values of x
    z.update(y)  # Modifies z with keys and values of y
    return z

z = merge_two_dicts(x, y)
Copier après la connexion

Explication :

1. Python 3.9.0 ou version ultérieure :

L'opérateur pipe (|) est introduit dans PEP-584 et combine les deux dictionnaires en utilisant la syntaxe de décompression du dictionnaire.

2. Python 3.5 ou version ultérieure :

L'opérateur double astérisque (**) est utilisé pour le décompression du dictionnaire. Chaque dictionnaire est décompressé sous forme de paires clé-valeur, puis fusionné dans un nouveau dictionnaire.

3. Python 2, 3.4 ou inférieur :

Dans les versions Python antérieures à 3.5, vous devez fusionner manuellement les dictionnaires à l'aide des méthodes copy() et update() :

  • copy () crée une copie superficielle du dictionnaire original.
  • update() met à jour le dictionnaire copié avec les paires clé-valeur de la seconde dictionnaire.

Remarque :

L'utilisation de la syntaxe de décompression du dictionnaire ({x, y}) est plus performante que l'utilisation du dicta compréhension ({k : v for d in (x, y) for k, v in d.items()}) ou la fonction chain() de itertools.

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!

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