BigO for dictionary方法'get(key)'

时间:2013-06-04 19:57:31

标签: python python-2.7

有人知道python的字典'get(key)'方法的O(?)是什么?

我已经使用cProfile模块对其进行了测试,并获得了字典中100,1000,10000,100000,1000000,100000000条记录的相同时间结果。

这是否意味着python的字典为任何密钥提供O(1)访问时间?

2 个答案:

答案 0 :(得分:6)

答案是 - 是的,因为Python决定使用Hashes来存储密钥。并且哈希表具有O(1)平均时间复杂度来访问其密钥 - 请在此处阅读更多http://en.wikipedia.org/wiki/Hash_table

密钥检索的最坏情况是O(n),其中ndictionary中的密钥数。 (@Michael Butscher)。

答案 1 :(得分:1)

是的,任何钥匙都是O(1)。