max*_*max 6 python performance tuples list python-3.x
[Python 3.1]
我正在跟进元组应该具有已知长度的设计概念(请参阅此注释),并且在大多数情况下应将未知长度元组替换为列表.我的问题是在什么情况下我应该偏离该规则?
例如,我知道元组字符串和数字文字比列表更快(参见另一条评论).那么,如果我有性能关键的代码,其中存在大量的计算,如果性能受到影响,我是否sumproduct(tuple1, tuple2)应重新定义它们以在列表上工作?(sumproduct((x, y, z), (a, b, c))定义为x * a + y * b + z * c,其参数未指定但长度相等).
那么使用Python时自动构建的元组怎么样def f(*x)?我认为每次使用它都不应强制列出.
顺便说一下,(x, y, z)创建比[x, y, z](对于变量而不是文字)更快?
Ned*_*der 11
在我看来,元组和列表之间唯一有趣的区别是列表是可变的而元组则不是.人们提到的其他区别对我来说似乎完全是假的:元组就像结构一样,列表就像数组(这就是"元组应该是已知长度"的来源).但结构如何与不变性相一致?事实并非如此.
唯一重要的区别是语言的区别:可变性.如果需要修改对象,请务必使用列表.如果你需要散列对象(作为dict中的键或集合的元素),那么你需要它是不可变的,所以使用元组.而已.
| 归档时间: |
|
| 查看次数: |
6208 次 |
| 最近记录: |