在Python中,如果两个值相同,则从嵌套字典中删除重复的条目
作者:互联网
考虑这种字典格式.
{1:{'name':'chrome', 'author':'google', 'url':'http://www.google.com/' },
2:{'name':'firefox','author':'mozilla','url':'http://www.mozilla.com/'}}
我要删除所有具有相同名称和作者的项目.
通过将所有键放入集合中,我可以轻松地删除基于键的重复条目,并且可以将其扩展为在特定值上使用,但这似乎是一项昂贵的操作,需要多次遍历字典.我不知道如何以有效的方式使用两个值来执行此操作.这是一本包含数千个项目的字典.
解决方法:
遍历字典,跟踪所遇到的(名称,作者)元组,并删除已遇到的元组:
def remove_duplicates(d):
encountered_entries = set()
for key, entry in d.items():
if (entry['name'], entry['author']) in encountered_entries:
del d[key]
else:
encountered_entries.add((entry['name'], entry['author']))
标签:python-2-5,dictionary,python 来源: https://codeday.me/bug/20191105/1997026.html