在dictionary.values()列表与集合

时间:2016-09-07 23:50:52

标签: python performance dictionary hashmap big-o

在Python中,我们知道在字典中查找键需要O(1)运行时间,但是在dictionary.values()中查找的运行时间是多少?

dictionary = {'a':[66,77,88], 'b':[99,100]}
key = 'a'
if key in dictionary: # takes O(1) run time 

number = '99'
if number in dictionary.values():  # What is the run time here?

编辑#1:键的值可以是列表或集合。许多人回答说,如果值是列表,则运行时间为O(1)。

如果设置值,它会是O(N)吗?

dictionary = {'a':(66,77,88), 'b':(99,100)}
number = '99'
if number in dictionary.values():  # What is the run time here?

1 个答案:

答案 0 :(得分:1)

x in s在列表中搜索的操作{x = item,s = list}

平均情况 - 假设随机均匀生成的参数 - 对于这样的操作将是O(n)

有关时间复杂度的更多信息,请参阅official link