Python:查找表的列表与字典

发布于 2021-02-02 23:16:33

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

我知道你可以为这两种方法执行以下操作:

if something in dict_of_stuff:
    pass

if something in list_of_stuff:
    pass

我的想法是,该命令将更快,更高效。

谢谢你的帮助。

编辑1
我正在尝试做的更多信息。 欧拉问题92。我正在查找表,以查看计算出的值是否已经准备好了。

编辑2
查找效率。

编辑3
没有与值相关的值…那么集合会更好吗?

关注者
0
被浏览
101
1 个回答
  • 面试哥
    面试哥 2021-02-02
    为面试而生,有面试问题,就找面试哥。

    速度

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

    记忆

    字典和集合都使用哈希,并且它们使用的内存比仅用于对象存储的更多。根据AM Kuchling在Beautiful Code中的介绍,该实现尝试使哈希2/3保持完整,因此你可能会浪费一些内存。

    如果你不立即添加新条目(根据更新的问题,你可以这样做),则可能需要对列表进行排序并使用二进制搜索。这是O(log n),对于字符串来说可能更慢,对于没有自然顺序的对象则不可能。



知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看