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)

测试结果:

使用python3.5进行分析时:

list列表进行索引 0.4718611240386963
dict字典进行索引 0.45757484436035156
重复多次试验依旧如此。

使用pypy3时:

list列表进行索引 0.01237797737121582
dict字典进行索引 0.1395554542541504

结论

可以看出,对于普通Python解释器,字典的查询效率要略微比列表高一些。
使用pypy时二者相比python解释器都有提速,且列表查询的效率远远甩了dict一大截(当然可能是针对重复查询一个值的情况做过优化吧。因此或许可以考虑用一下pypy……)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值