我正在編寫一個歐拉問題,我碰到了問題,引發了我的好奇心。我有兩個代碼片段。一個是列出其他使用字典。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