gpt4 book ai didi

python - 从 dict 列表中删除具有相同 id 的 dict

转载 作者:行者123 更新时间:2023-11-28 21:31:05 24 4
gpt4 key购买 nike

我想从字典列表中删除具有相同 ID 的字典。

def removeDuplicate(elems, id):
new_list = []
for elem in elems:
if not elem[id] in [d[id] for d in new_list if id in d]:
new_list.append(elem)
return new_list


a = [
{0 : 'a', 'id' : 2, 2 : 'c', time : '1'},
{0 : 'a', 'id' : 2, 2 : 'c', time : '2'},
{0 : 'a', 'id' : 3, 2 : 'c', time : '3'},
{0 : 'a', 'id' : 4, 2 : 'c', time : '4'},
{0 : 'a', 'id' : 5, 2 : 'c', time : '5'},
{0 : 'a', 'id' : 4, 2 : 'c', time : '6'},
{0 : 'a', 'id' : 2, 2 : 'c', time : '7'},
{0 : 'a', 'id' : 3, 2 : 'c', time : '8'},
]
print(a)

a = removeDuplicate(a, 'id')

print(a)

它对 7000 个元素工作正常,但对 500 000 个元素需要很长时间。

是否有更好的方法来删除这些事件?

最佳答案

在进行查找时尝试使用 set,因为它的复杂度仅为 O(1)。也尽量不要在不需要时循环。

你的这个稍微修改过的代码应该足够快,即使对于 50 万个元素也是如此

def removeDuplicate(elems, id):
new_list = []
read_ids = set()
for elem in elems:
if elem[id] not in read_ids:
read_ids.add(elem[id])
new_list.append(elem)
return new_list

关于python - 从 dict 列表中删除具有相同 id 的 dict,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58918713/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com