biglist =
[
{'title':'U2 Band','link':'u2.com'},
{'title':'ABC Station','link':'abc.com'},
{'title':'Live Concert by U2','link':'u2.com'}
]
Run Code Online (Sandbox Code Playgroud)
我想删除列表中的THIRD元素...因为它有"u2.com"作为副本.我不想要重复的"链接"元素.执行此操作的最有效代码是什么,以便产生以下结果:
biglist =
[
{'title':'U2','link':'u2.com'},
{'title':'ABC','link':'abc.com'}
]
Run Code Online (Sandbox Code Playgroud)
我尝试了很多方法,包括使用许多嵌套的"for ... in ...."但这种效率非常低且太长.
对于一个非常大的列表,如果你想保留剩余物品的确切顺序,可能是最快的方法,如下......:
biglist = [
{'title':'U2 Band','link':'u2.com'},
{'title':'ABC Station','link':'abc.com'},
{'title':'Live Concert by U2','link':'u2.com'}
]
known_links = set()
newlist = []
for d in biglist:
link = d['link']
if link in known_links: continue
newlist.append(d)
known_links.add(link)
biglist[:] = newlist
Run Code Online (Sandbox Code Playgroud)