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