【发布时间】:2011-05-11 19:00:11
【问题描述】:
[Python 3.1]
我正在跟进元组应该是已知长度的设计概念(请参阅this comment),并且在大多数情况下应该用列表替换未知长度的元组。我的问题是在什么情况下我应该偏离这条规则?
例如,我知道从字符串和数字文字创建元组比列表更快(请参阅another comment)。因此,如果我的性能关键代码中有大量计算,例如sumproduct(tuple1, tuple2),我是否应该重新定义它们以处理列表,尽管性能受到影响? (sumproduct((x, y, z), (a, b, c)) 定义为x * a + y * b + z * c,其参数未指定但长度相等)。
那么使用def f(*x)时Python自动构建的元组呢?我认为这不是我每次使用时都应该强制列出的内容。
顺便说一句,(x, y, z) 的创建速度是否比 [x, y, z] 快(对于变量而不是文字)?
【问题讨论】:
标签: python performance list python-3.x tuples