我正在使用Python设计一个软件,当从非常小的字典中弹出项目以及从非常大的字典中弹出项目或者它是相同的时候,我对于是否存在任何时间差异感到不太好奇在所有情况下。
答案 0 :(得分:2)
您可以使用timeit
模块轻松自己回答此问题。但是字典的整个点是按键即时访问任何所需元素,所以我不会期望在这两种情况之间有很大差异。
答案 1 :(得分:1)
查看Python TimeComplexity上的这篇文章:
为dict对象列出的平均大小写时间假定为散列 对象的功能足够稳健以进行冲突 罕见。 Average Case假设参数中使用的键是 从所有键的集合中随机均匀地选择。
请注意,有一个快速路径的dicts(实际上)只处理 用str键;这不会影响算法的复杂性,但它会影响算法的复杂性 可以显着影响常数因素:典型的速度有多快 节目结束。
根据这篇文章,对于'Get Item'操作,平均情况是O(1),更糟糕的是O(n)。换句话说,最坏的情况是时间随着大小线性增加。有关详细信息,请参阅维基百科上的Big O Notation。