使用 Python 以區塊迭代迭代器
以特定大小的區塊迭代迭代器是 Python 中的常見任務。要實現此目的,請考慮使用以下方法:
使用itertools.grouper() 函數:
itertools.grouper() 函數提供了一個通用的分組方法一個可迭代的區塊。但是,它需要額外的處理來容納不完整的最終區塊,這可以透過 incomplete 參數來實現。
from itertools import grouper it = iter([1, 2, 3, 4, 5, 6, 7]) chunk_size = 3 chunks = list(grouper(it, chunk_size, incomplete='ignore')) print(chunks) # [[1, 2, 3], [4, 5, 6], [7]]
使用itertools.batched() 函數(Python 3.12 ):
Python 3.12 中引入,itertools.batched(>Python 3.12 中引入,itertools.batched() 區塊函數並顯式處理函數保留原始序列類型。
from itertools import batched it = [1, 2, 3, 4, 5, 6, 7] chunk_size = 3 chunks = list(batched(it, chunk_size)) print(chunks) # [[1, 2, 3], [4, 5, 6], [7]]
序列迭代器的替代解決方案:
對於序列,一個不太通用但方便的解決方案是使用列表切片步長等於區塊大小。
it = [1, 2, 3, 4, 5, 6, 7] chunk_size = 3 chunks = [it[i:i + chunk_size] for i in range(0, len(it), chunk_size)] print(chunks) # [[1, 2, 3], [4, 5, 6], [7]]
這些方法提供了有效的迭代方法區塊迭代器,允許靈活處理不完整的最終區塊並在必要時保留原始序列類型。
以上是如何使用 Python 分塊迭代迭代器?的詳細內容。更多資訊請關注PHP中文網其他相關文章!