私はリストにdictsを持ち、いくつかのdictsは同じです。私は重複したものを見つけたいと思っていて、重複している重複数を新しいリストや辞書に追加したい。Pythonは重複した辞書をリスト内に見つけ、数えてそれらを区切ります。
import itertools
myListCombined = list()
for a, b in itertools.combinations(myList, 2):
is_equal = set(a.items()) - set(b.items())
if len(is_equal) == 0:
a.update(count=2)
myListCombined.append(a)
else:
a.update(count=1)
b.update(count=1)
myListCombined.append(a)
myListCombined.append(b)
myListCombined = [i for n, i enumerate(myListCombine) if i not in myListCombine[n + 1:]]
このコードはちょっとした作業ですが、リスト内に2つの重複したディクテーションがあります。この状況ではa.update(count = 2)は機能しません。 最後の行でsepareteした後に重複するdictsを削除していますが、うまくいくかどうかわかりません。
入力:
[{'name': 'Mary', 'age': 25, 'salary': 1000},
{'name': 'John', 'age': 25, 'salary': 2000},
{'name': 'George', 'age': 30, 'salary': 2500},
{'name': 'John', 'age': 25, 'salary': 2000},
{'name': 'John', 'age': 25, 'salary': 2000}]
所望の出力:
[{'name': 'Mary', 'age': 25, 'salary': 1000, 'count':1},
{'name': 'John', 'age': 25, 'salary': 2000, 'count': 3},
{'name': 'George', 'age': 30, 'salary': 2500, 'count' 1}]
ご入力して所望の出力を投稿してください。 – Ajax1234
編集、ありがとう@ Ajax1234 –
下記の私の回答をご覧ください。 – Ajax1234