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
935 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!

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