gpt4 book ai didi

Python:用于查找表的列表与字典

转载 作者:IT老高 更新时间:2023-10-28 12:24:32 26 4
gpt4 key购买 nike

我有大约 1000 万个值需要放入某种类型的查找表中,所以我想知道 listdict 哪个更有效?

我知道你可以为两者做这样的事情:

if something in dict_of_stuff:
pass

if something in list_of_stuff:
pass

我的想法是 dict 会更快更高效。

感谢您的帮助。

编辑 1
关于我正在尝试做的事情的更多信息。 Euler Problem 92 .我正在制作一个查找表,以查看计算的值是否已全部计算完毕。

编辑 2
查找效率。

编辑 3
没有与值相关联的值...那么 set 会更好吗?

最佳答案

速度

列表中的查找是 O(n),字典中的查找是摊销 O(1),关于数据结构中的项目数。如果您不需要关联值,请使用集合。

内存

字典和集合都使用散列,它们使用的内存比仅用于对象存储要多得多。据 A.M.在 Beautiful Code 中,Kuchling 的实现试图保持 2/3 的散列满,所以你可能会浪费相当多的内存。

如果您不即时添加新条目(根据您更新的问题您会这样做),那么对列表进行排序并使用二分搜索可能是值得的。这是 O(log n),对于字符串可能会更慢,对于没有自然顺序的对象是不可能的。

关于Python:用于查找表的列表与字典,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/513882/

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