在字典中查找关键字与在列表中查找项目所需的时间相同吗

Jon*_*nis 0 python performance big-o dictionary list

我有一本带1,000,000键的字典,我想检查字典中是否存在某个键。我也可以1,000,000在一个列表中包含所有这些键的项目。

哪种方式更快,为什么?

例如:

999999 in {x:x for x in range(1000000)}
Run Code Online (Sandbox Code Playgroud)

对比

999999 in [x for x in range(1000000)]
Run Code Online (Sandbox Code Playgroud)

leo*_*leo 5

字典更快,因为键是散列的。请参见此处:https : //wiki.python.org/moin/TimeComplexity

  • 添加@leo所说的,在这两种情况下似乎都需要相当长的时间的原因是因为您在创建时检查了这两种情况。首先分别创建字典和列表,然后检查执行它们中的每一个所花费的时间。 (2认同)
  • 同意。我的回答仅涉及查找 (2认同)