首頁 >後端開發 >Python教學 >如何使用 Python 分塊迭代迭代器?

如何使用 Python 分塊迭代迭代器?

Susan Sarandon
Susan Sarandon原創
2024-12-03 13:38:111019瀏覽

How Can I Iterate Through an Iterator in Chunks Using Python?

使用 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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn