python辞書(dict)は4つの方法の性能を遍歴する
pythonではdictを巡る方法は4つあります.しかし、この4つの遍歴の性能はどうですか.次のようなテストをしました
このスクリプトを5回実行します.結果は次のとおりです.
明らかに第1の方法は効率が最も高く,第3の方法は少し悪いがほとんど変わらず,方法の第2の4の性能はずっと悪い.
しかし、実際の差はあまり大きくないので、あまりこだわる必要はありません.
l = [(x,x) for x in xrange(10000)]
d = dict(l)
from time import clock
t0=clock()
for i in d:
t = i + d[i]
t1=clock()
for k,v in d.items():
t = k + v
t2=clock()
for k,v in d.iteritems():
t = k + v
t3=clock()
for k,v in zip(d.iterkeys(),d.itervalues()):
t = k + v
t4=clock()
print t1-t0, t2-t1, t3-t2, t4-t3
このスクリプトを5回実行します.結果は次のとおりです.
python test.py
0.00184039735833 0.00326492977712 0.00214993552657 0.00311549755797
python test.py
0.00182356570728 0.00339342506446 0.00234863111466 0.00321566640817
python test.py
0.00185107108827 0.00324563495762 0.00211175641563 0.00313479237748
python test.py
0.0018215130669 0.00320950848705 0.00215814608806 0.00322798225041
python test.py
0.00216635664955 0.00391807994377 0.00207604047314 0.00322757172233
明らかに第1の方法は効率が最も高く,第3の方法は少し悪いがほとんど変わらず,方法の第2の4の性能はずっと悪い.
しかし、実際の差はあまり大きくないので、あまりこだわる必要はありません.