gpt4 book ai didi

python key in dict.keys() performance for large dictionaries

转载 作者:太空狗 更新时间:2023-10-29 18:13:12 25 4
gpt4 key购买 nike

我想知道你们是否可以给我一些关于让我的代码性能更好的建议。

我有一组 for 循环,它查看一个键是否在一个字典中,它的值是一个列表,如果该键存在,它会附加到列表中,如果不存在,它会在 for 中添加一个新列表那把 key

dict={}
for value in value_list:
if value.key in dict.keys():
temp_list = dict[value.key]
temp_list.append(value.val)
dict[value.key] = temp_list
else:
dict[value.key] = [value.val]

现在这段代码可以正常工作,但实际上随着字典开始填充行,dict.keys() 中的 value.key 变得越来越麻烦。

有更好的方法吗?

谢谢,

迈克

最佳答案

不要这样做:

value.key in dict.keys()

至少在 Python 2 中,它创建了一个包含每个键的列表。随着字典变大,它变得越来越昂贵,并且在列表上执行 O(n) 搜索以找到键,这违背了使用字典的目的。

相反,只需执行:

value.key in dict

它不会创建临时列表,而是对键进行哈希表查找而不是线性搜索。

setdefault,如其他地方所述,是执行此操作的更简洁的方法,但理解上述内容非常重要。

关于python key in dict.keys() performance for large dictionaries,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4730993/

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