2011-12-12 49 views
5

我正在嘗試改進我的文檔。我想說這個函數接受的是collection.Iterable,但是代碼會遍歷迭代很多次。 「列表」過於具體,「迭代」不起作用,因爲一些迭代只能迭代一次。可重複迭代多次的Python名稱

是否有一個名字的東西? 「重新迭代」?多迭代?

+0

不錯的問題.. –

+2

不回答你的問題,但我建議你可以在你的代碼中使用itertools.tee - 以便它可以接受任何迭代。 – jsbueno

+0

@jsbueno:雖然這會在傳入序列時引入冗餘副本。 –

回答

2

我想不出任何合適的。可重複的聽起來像一個很好的詞,爲什麼不在你的文檔中明確地定義它然後使用它?

5

您可能想要術語"sequence"。 Python中的一個序列具有一定的長度並且支持按索引訪問項目。

+1

雖然這可能太具體了 - 例如鏈表不支持索引訪問,但仍然可以重複使用。 –

+1

@SideshowBob:我認爲這在實踐中不是太嚴格。 Python自帶的鏈表實現是分塊鏈表'deque',它也是一個序列。當然,索引訪問對於'deque'來說是O(n)。 –

+2

@SvenMarnach:ValuesView是「可重複使用的」,但不支持索引訪問。 –