len(list)
是否每次调用列表计算列表的长度,还是返回内置计数器的值?
我有一个背景下,我需要通过一个循环,每次检查列表的长度,如:在python中,len(list)是做什么的?
listData = []
for value in ioread():
if len(listData)>=25:
processlistdata()
clearlistdata()
listData.append(value)
我应该检查len(listData)
在每个迭代上,或者我应该有一个列表的长度计数器?
我对99.9%的肯定表示,任何高级语言的序列类型都会存储它的长度。 Python,Perl和Ruby(以及其他类似的语言)中的'len'(或'strlen'或'length')函数决不会花费O(N)时间。 – 2010-03-08 07:21:02
我想用'for grouped in grouper替换你的代码(ioread(),25):process(chunk)'其中'grouper()'的定义类似于http://docs.python.org/library/itertools。 html#食谱(你可能想用'izip()'替换'izip_longest()'来删除最后一个值)。 – jfs 2010-03-08 09:23:23
您是否测量了两个版本以查看哪一个更快?使用'timeit'更容易,并发布结果,以便我们对它们发表评论。 – 2010-03-08 11:08:36