我有一个列表,该列表包含字典。列表中可能存在重复的词典。
我正在尝试列出列表中唯一的字典。
我尝试过使用collections.Counter,但是我收到一条错误,说明这些项目(列表中的字典)不可清除。
最终,我想返回一个仅包含唯一字典的列表,每个字典将包含一个带有-'cnt'的新键/值对:。
有人可以帮忙吗?
答案 0 :(得分:0)
new_list = []
counts = []
for dict_ in your_list:
try:
i = new_list.index(dict_)
except ValueError:
counts.append(1)
new_list.append(dict_)
else:
counts[i] += 1
assert len(counts) == len(new_list)
for dict_, count in zip(new_list, counts):
dict_['cnt'] = count
del counts