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番目のリストが繰り返され、このリストのキーが前の変数に存在しない場合、両方のリストの特定のキーが同等になります。
-
結果はコンソールに表示されます。
-
重複するキーを使用してPython辞書を作成するにはどうすればよいですか?
Python辞書では、キーを繰り返すことはできません。ただし、 defaultdictを使用できます 回避策を見つけるため。このクラスはコレクションモジュールで定義されています。 defaultdictオブジェクトのデフォルトファクトリとしてリストを使用する >>> from collections import defaultdict >>> d=defaultdict(list) これは、それぞれ2つのアイテムを持つタプルのリストです。最初のアイテムが繰り返し使用されていることがわかりました。このリストはdefaultdictで変換されます >
-
複数のPython辞書をマージする方法は?
まず、すべての辞書オブジェクトをリストオブジェクトに入れます。 辞書オブジェクトを空のディレクトリに初期化します。これは、マージされたディレクトリを含むことを目的としています 例 リストの各ディレクトリ項目で更新します >>> d=[{'a':1, 'b':2, 'c':3}, {'a':1, 'd':2, 'c':'foo'}, {'e':57,'c':3}] >>> d [{'a': 1, &