Maison  >  Article  >  développement back-end  >  Comment fusionner deux dictionnaires en python

Comment fusionner deux dictionnaires en python

藏色散人
藏色散人original
2019-06-24 11:02:4932204parcourir

Comment fusionner deux dictionnaires en python

La fusion de deux dictionnaires en Python est un problème relativement courant. Cet article présentera plusieurs solutions pour fusionner deux dictionnaires et les comparer.

Pour ce problème, l'idée la plus intuitive est d'ajouter les deux dictionnaires et d'attribuer la valeur au dictionnaire résultat. Le code est :

Fusionner les deux dictionnaires en python (Méthode. 1 )

dictMerged1 = dict( dict1.items() + dict2.items() )

Cependant, cette méthode prend beaucoup de temps à fusionner, et le code le plus efficace est :

Fusionner deux dictionnaires python (Méthode 2)

dictMerged2 = dict( dict1, **dict2 )

Cette méthode utilise la méthode d'usine dict() (Python 2.2 ou supérieur). Si le paramètre d'entrée est un autre dictionnaire (ici dict1), lorsque la méthode factory est appelée, le contenu sera copié depuis dict1 pour générer un nouveau dictionnaire. À partir de Python 2.3, cette méthode de fabrique permet d'appeler un dictionnaire ou un dictionnaire d'arguments de mots-clés.

Mais il convient de noter que pour cette méthode d'appel, dict() n'accepte qu'au plus un paramètre (ou un ensemble de paramètres de longueur variable avec nom=valeur), et n'acceptera pas un autre dictionnaire. Par conséquent, la méthode intuitive consistant à utiliser simplement les deux paramètres dict1 et dict2 provoquera l'erreur suivante :

>>> dictMerged = dict( dict1, dict2 )
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: dict expected at most 1 arguments, got 2

C'est pourquoi nous voyons que **dict2 est utilisé dans la méthode 2 ci-dessus. Les amis qui connaissent C doivent noter que * ici ne signifie pas un pointeur. C'est la façon d'écrire des paramètres de fonction de longueur variable en Python (voir cet article pour des connaissances pertinentes sur les paramètres de fonction de longueur variable). Ici, ** signifie les paramètres de fonction de longueur variable basés sur un dictionnaire.

La méthode 2 exécute le code comme dans la méthode 3 ci-dessous, c'est-à-dire qu'elle copie d'abord dict1 dans dictMerged, puis effectue l'opération update() :

Fusionner les deux dictionnaires python ( méthode 3)

dictMerged3 = dict1.copy()
dictMerged3.update( dict2 )

Pour la première étape de l'opération de copie, cette méthode de copie utilisant la méthode intégrée copy() est la même que le résultat de la copie dans la méthode 2, mais selon "Core Comme mentionné dans la section 7.3.2 du livre Python Programming (2e édition), la méthode de génération d'un nouveau dictionnaire à partir d'un dictionnaire existant dictNew = dict(dictOld) est plus lente que la méthode intégrée dictNew = dictOld.copy(), donc ce livre Il est recommandé d'utiliser la méthode copy().

Par conséquent, parmi ces méthodes, la méthode 3 est la plus efficace et le code est plus facile à lire.

Recommandations associées : "Tutoriel Python"

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:
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