小编tom*_*123的帖子

为什么无序 python 字典查找比有序查找慢 10 倍?

我尝试通过迭代整数列表来在 python 中进行快速字典查找。我注意到无序查找比有序查找慢大约 10 倍。

有什么方法可以加快无序字典查找速度吗?您知道造成时差的原因吗?在我的原始数据中,条目不是有序的或连续的,因为并非某个范围内的所有整数都在我的列表中。

我做了什么:

dummy_dict = {i:i for i in range(10000000)}

#Ordered list
a = [i for i in range(10000000)] 

#Unordered list
b = [i for i in range(10000000)] 
random.shuffle(b)

#Sorted unordered list
c = b[:]
c.sort() 
Run Code Online (Sandbox Code Playgroud)

跑步时间:

[dummy_dict[i] for i in a] #Time to run: 0.7s
[dummy_dict[i] for i in b] #Time to run: 6.7s
[dummy_dict[i] for i in c] #Time to run: 0.7s
Run Code Online (Sandbox Code Playgroud)

不仅进行字典查找速度较慢,而且迭代列表的时间也不同:

["" for i in a] #Time to run: 0.3s
["" for …
Run Code Online (Sandbox Code Playgroud)

python lookup performance dictionary list

3
推荐指数
1
解决办法
142
查看次数

标签 统计

dictionary ×1

list ×1

lookup ×1

performance ×1

python ×1