我听说元组元素占用空间不足但无法修改,因此在执行时间方面最佳解决方案是什么:
hash = {}
hash['foo'] = [34,'foobar',[55,90]]
hash['foo'][0] = hash['foo'][0] + 17
Run Code Online (Sandbox Code Playgroud)
要么
hash = {}
hash['foo'] = (34,'foobar',[55,90])
hash['foo'] = (hash['foo'][0] + 17,hash['foo'][1],hash['foo'][2])
Run Code Online (Sandbox Code Playgroud)
首先,不要拨打字典hash.它会影响内置哈希.
在这两种情况下,如果删除最后一行然后对代码计时,则值为:
0.545173168182 # list
0.479876995087 # tuple
Run Code Online (Sandbox Code Playgroud)
这是预期的行为.因为创建a tuple比创建列表更快.
$ python -mtimeit 'l=[]'
10000000 loops, best of 3: 0.053 usec per loop
$ python -mtimeit 't=()'
10000000 loops, best of 3: 0.026 usec per loop
Run Code Online (Sandbox Code Playgroud)
但在你的情况下,采取第三行.您创建一个新foo密钥,因为您无法修改tuple,因此它将比list示例花费更多时间.
0.911674976349 # list
1.1165189743 # tuple
Run Code Online (Sandbox Code Playgroud)
另一个注意事项,时差是微观优化.鉴于差异很小,你不应该担心它们.
| 归档时间: |
|
| 查看次数: |
2575 次 |
| 最近记录: |