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
Dans Python 3.5 ou supérieur :
z = {**x, **y}
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)
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() :
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!