pythonリストl[x]と辞書d['x']クエリの効率比較


注意:以下の「インデックス」および「クエリー」は、リスト[1,2,3,4,5]について、a=l[0]ではなく、l.index(3)のようなプロセスを指します.
コード:
# !coding=utf-8
def listIndex(l,num):
    for i in range(1000000):
        a=l[num]
def dicIndex(d,st):
    for i in range(1000000):
        a=d[st]

l=[1,2,3,4,5]
d={'a':1,'b':2,'c':3,'d':4,'e':5}
a='e'
b=3
import time
t0=time.time()
for i in range(10):
    dicIndex(d,a)
t1=time.time()
for i in range(10):
    listIndex(l,b)
t2=time.time()
print('list      ',t2-t1)
print('dict      ',t1-t0)

テスト結果:
python 3を使用する.5分析時:
listリストはインデックス0.47186112403866963 dict辞書を行い、インデックス0.45748443603565の複数回の試験を繰り返した.
pypy 3を使用する場合:
listリストインデックス0.01237797737121582 dict辞書インデックス0.13955542541504
結論
通常のPython解釈器では,辞書のクエリ効率はリストよりやや高いことがわかる.pypyを使用する場合、両方ともpython解釈器に比べて高速化され、リストクエリの効率はdictの大きな部分をはるかに振っています(もちろん、1つの値を繰り返す場合に最適化されているのかもしれません.そのため、pypyを使用することも考えられます......)