我正在编写一个欧拉问题,我碰到了问题,引发了我的好奇心。我有两个代码片段。一个是列出其他使用字典。Python字典vs列表,哪个更快?
使用列表:
n=100000
num=[]
suma=0
for i in range(n,1,-1):
tmp=tuple(set([n for n in factors(i)]))
if len(tmp) != 2: continue
if tmp not in num:
num.append(tmp)
suma+=i
使用字典:
n=100000
num={}
suma=0
for i in range(n,1,-1):
tmp=tuple(set([n for n in factors(i)]))
if len(tmp) != 2: continue
if tmp not in num:
num[tmp]=i
suma+=i
我只关心性能。为什么使用字典的第二个示例运行得非常快,比列表的第一个示例更快。字典的例子几乎快了三十倍!
我使用n = 1000000测试了这两个代码,第一个代码在1032秒内运行,第二个代码在3.3秒内运行,,, amazin'!
你的代码中直接从你的IDE粘贴,突出了这一切,然后按Ctrl + K – Cody
@Cody问题是不是与缩进,但事实上他将代码块放在列表中。我已更正待处理编辑中的格式。 – Tagc
@Tagc我没有看到代码,所以我只是猜测。那么好的修复。 – Cody