首頁 > 後端開發 > Python教學 > 如何有效地分塊迭代 Python 列表?

如何有效地分塊迭代 Python 列表?

Susan Sarandon
發布: 2024-12-19 19:36:10
原創
331 人瀏覽過

How Can I Efficiently Iterate Over a Python List in Chunks?

以塊的形式迭代列表:Pythonic 解決方案

在本文中,我們探索以塊的形式迭代Python 列表的方法,其中每個區塊由特定數量的元素組成。給定的情況涉及一次處理四個整數。

傳統方法

提供的程式碼片段描述了對清單進行分塊的C 風格方法:

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 的慣用方式不一致

Python解

1.使用 chunker 函數

從 Python 3.12 開始,Python 引入了 chunker函數,它提供了一種簡潔高效的方法來對任何序列進行分塊:

def chunker(seq, size):
    return (seq[pos:pos + size] for pos in range(0, len(seq), size))
登入後複製

該函數創建一個生成器從給定的序列中生成指定大小的區塊。以下程式碼展示了用法:

for group in chunker(text, 7):
    print(repr(group),)
登入後複製

2.使用 itertools.islice

對於 3.12 之前的 Python 版本,itertools.islice可用於分塊:

from itertools import islice

def grouper(seq, size):
    it = iter(seq)
    while True:
        chunk = list(islice(it, size))
        if not chunk:
            return
        yield chunk
登入後複製

此函數類似地建立一個產生器,它會產生元素清單從

結論

chunker 函數為Python 3.12 及更高版本中的分塊清單提供了原生且高效的解決方案。對於早期版本,grouper 函數提供了合適的替代方案。這些方法允許在處理大型清單時使用更簡潔和慣用的程式碼。

以上是如何有效地分塊迭代 Python 列表?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板