Sco*_*ott 4 python data-structures
就性能而言,这两者有多大区别?
tmp = []
tmp.append(True)
print tmp[0]
Run Code Online (Sandbox Code Playgroud)
和
tmp = {}
tmp[0] = True
print tmp[0]
Run Code Online (Sandbox Code Playgroud)
Ale*_*lli 24
timeit
标准库中的模块仅用于回答这些问题!忘了print
(这会给你的终端喷出令人讨厌的副作用;-)并比较:
$ python -mtimeit 'tmp=[]; tmp.append(True); x=tmp[0]'
1000000 loops, best of 3: 0.716 usec per loop
$ python -mtimeit 'tmp={}; tmp[0]=True; x=tmp[0]'
1000000 loops, best of 3: 0.515 usec per loop
Run Code Online (Sandbox Code Playgroud)
所以,dict是胜利者 - 0.2微秒......! - )
微观优化通常不会毫无意义,我发现对于Python来说尤其困难和晦涩难懂.实际上,使代码同时变得更慢,更复杂是非常容易的.请参阅此Stack Overflow问题,其中最简单,最清晰,最短的Python解决方案也是最快的.
正如其他人通过实际测试所表明的那样,两种选择之间的速度差异非常小.不那么小的是语义差异.列表和词典不仅仅是相同概念的两种实现,而是用于不同的用途.选择一个更适合您使用的产品.
归档时间: |
|
查看次数: |
3590 次 |
最近记录: |