【发布时间】:2015-10-24 23:13:18
【问题描述】:
我是 Python 新手,我注意到有两种方法可以在字典中搜索键:
d={1: 'a', 2: 'b',...}
if 1 in d: ...
或
if 1 in d.keys():
我认为它们是相同的,但由于我必须在包含 100 000 个元素的字典中进行搜索,因此我发现第二种方法需要太多时间。我已经寻找并读到这是因为d.keys() 返回一个列表,然后搜索元素的时间复杂度为 O(n),但在字典中搜索的复杂度为 O(1)。这是真的吗?
【问题讨论】:
-
更多信息请见the wiki entry on this。
-
@TigerhawkT3 感谢您提供的信息 :) 我不知道!
-
没问题 - 我刚刚用 Google 搜索了“python 字典列表 o(n)”。由于您自己看到了真实世界的结果,并且您提到您已经在网上进行了研究,所以除了“是的,您确实得出了正确的结论”之外,我不确定您在这里寻找什么。而你做到了。 :)
-
请注意,在 Python 3 中
dict.keys()返回一个视图对象,它还支持 O(1) 查找。 -
@TigerhawkT3 不,我想要一个可靠的信息来源,你给了它
标签: python list search dictionary time-complexity