以區塊的形式迭代列表:Python 視角
在Python 中,以區塊的形式迭代列表的任務可以透過以下方式完成各種方式。一種常見的方法是使用循環以特定的時間間隔增量存取元素:
for i in range(0, len(ints), 4): # dummy op for example code foo += ints[i] * ints[i + 1] + ints[i + 2] * ints[i + 3]
此方法雖然有效,但可能會在Python 程式碼中引入不必要的複雜性和「C-think 」。更 Pythonic 的方法涉及利用內建的 range() 函數和切片:
def chunker(seq, size): return (seq[pos:pos + size] for pos in range(0, len(seq), size))
chunker 函數建立一個迭代序列的生成器表達式,從各個位置開始產生所需大小的區塊。它非常高效,並且無需明確循環和索引操作。
例如,請考慮以下程式碼:
text = "I am a very, very helpful text" for group in chunker(text, 7): print(repr(group),) # 'I am a ' 'very, v' 'ery hel' 'pful te' 'xt'
這裡,chunker 函數將文字分成七個群組字符,產生字符序列的元組。
類似地,您可以使用 chunker 函數來處理任何類型的序列,例如列表動物:
animals = ['cat', 'dog', 'rabbit', 'duck', 'bird', 'cow', 'gnu', 'fish'] for group in chunker(animals, 3): print(group) # ['cat', 'dog', 'rabbit'] # ['duck', 'bird', 'cow'] # ['gnu', 'fish']
以上是如何使用 Python 高效地迭代區塊列表?的詳細內容。更多資訊請關注PHP中文網其他相關文章!