Python
 Computer >> コンピューター >  >> プログラミング >> Python

Python –重複するキーを持つ辞書リストをマージする


辞書リストを重複キーとマージする必要がある場合、文字列のキーが繰り返され、条件に応じて結果が決定されます。

以下は同じもののデモンストレーションです

my_list_1 = [{"aba": 1, "best": 4}, {"python": 10, "fun": 15}, {"scala": "fun"}]

my_list_2 = [{"scala": 6}, {"python": 3, "best": 10}, {"java": 1}]

print("The first list is : ")
print(my_list_1)
print("The second list is : ")
print(my_list_2)
for i in range(0, len(my_list_1)):

   id_keys = list(my_list_1[i].keys())
   for key in my_list_2[i]:

      if key not in id_keys:
         my_list_1[i][key] = my_list_2[i][key]

print("The result is : " )
print(my_list_1)

出力

The first list is :
[{'aba': 1, 'best': 4}, {'python': 10, 'fun': 15}, {'scala': 'fun'}]
The second list is :
[{'scala': 6}, {'python': 3, 'best': 10}, {'java': 1}]
The result is :
[{'aba': 1, 'best': 4, 'scala': 6}, {'python': 10, 'fun': 15, 'best': 10}, {'scala': 'fun', 'java': 1}]

説明

  • 辞書の2つのリストが定義され、コンソールに表示されます。

  • 辞書のリストが繰り返され、キーにアクセスします。

  • これらのキーは変数に格納されます。

  • 辞書の2番目のリストが繰り返され、このリストのキーが前の変数に存在しない場合、両方のリストの特定のキーが同等になります。

  • 結果はコンソールに表示されます。


  1. 重複するキーを使用してPython辞書を作成するにはどうすればよいですか?

    Python辞書では、キーを繰り返すことはできません。ただし、 defaultdictを使用できます 回避策を見つけるため。このクラスはコレクションモジュールで定義されています。 defaultdictオブジェクトのデフォルトファクトリとしてリストを使用する >>> from collections import defaultdict >>> d=defaultdict(list) これは、それぞれ2つのアイテムを持つタプルのリストです。最初のアイテムが繰り返し使用されていることがわかりました。このリストはdefaultdictで変換されます >

  2. 複数のPython辞書をマージする方法は?

    まず、すべての辞書オブジェクトをリストオブジェクトに入れます。 辞書オブジェクトを空のディレクトリに初期化します。これは、マージされたディレクトリを含むことを目的としています 例 リストの各ディレクトリ項目で更新します >>> d=[{'a':1, 'b':2, 'c':3}, {'a':1, 'd':2, 'c':'foo'}, {'e':57,'c':3}] >>> d [{'a': 1, &