--Je veux combiner plusieurs dictionnaires dans un seul dictionnaire ――Je veux aussi ajouter d'autres éléments
dictA = {'A1': 1, 'A2': 1}
dictB = {'B1': 1, 'B2': 1}
# ---(Combiner des dictionnaires&Ajouter un élément)---
# => {'key1': 1, 'key2': 1, 'A1': 1, 'A2': 1, 'B1': 1, 'B2': 1}
plus loin,
--Je veux le traiter de manière non destructive (sans apporter de modifications au dictionnaire d'origine)
Je voudrais présenter une méthode d'écriture efficace pour les réaliser.
Ceci est en partie possible avec `` .update () '' et une notation de dictionnaire supplémentaire.
dictA.update(dictB)
dictA['key1'] = 1
dictA['key2'] = 1
new_dict = dictA
print(new_dict)
# => {'A1': 1, 'A2': 1, 'B1': 1, 'B2': 1, 'key1': 1, 'key2': 1}
Le dictA original est parti. (Parce que nous avons ajouté des éléments (changements destructifs) à dictA)
print(dictA)
# => {'A1': 1, 'A2': 1, 'B1': 1, 'B2': 1, 'key1': 1, 'key2': 1}
En outre, si la clé est dupliquée, la valeur sera écrasée. Cela peut provoquer un comportement involontaire (provoquant des bogues).
dictA = {'key': 'dictA'}
dictB = {'key': 'dictB'}
dictA.update(dictB)
print(dictA)
# => {'key': 'dictB'}
Créez un nouveau dictionnaire en passant des valeurs aux arguments de mot-clé de la fonction dict sans vous soucier de la jonction ou de l'ajout d'éléments. N'importe quel nombre est possible.
new_dict = dict(
key1=1,
key2=1,
**dictA,
**dictB,
)
print(new_dict)
# => {'key1': 1, 'key2': 1, 'A1': 1, 'A2': 1, 'B1': 1, 'B2': 1}
Le dictionnaire d'origine est inchangé car il s'agit d'un processus non destructif.
new_dict['keyA1'] = 5
print(new_dict['keyA1'])
# => 5
print(dictA['keyA1'])
# => 1
S'il y a des doublons, une TypeError se produira, de sorte que vous pouvez éviter d'écraser les valeurs involontaires. Une erreur se produira pour les clés en double dans le dictionnaire et tous les arguments de mots clés écrits explicitement.
dictA = {'key': 'dictA'}
dictB = {'key': 'dictB'}
new_dict = dict(
key='A',
**dictA,
**dictB,
)
# => TypeError: type object got multiple values for keyword argument 'key'
Il a été dit que si vous le recréez avec la fonction dict, vous pouvez combiner des dictionnaires et ajouter des éléments de manière sûre et concise!
Recommended Posts