首頁 > 後端開發 > Python教學 > 如何使用 Python 高效地迭代區塊列表?

如何使用 Python 高效地迭代區塊列表?

Patricia Arquette
發布: 2024-12-20 00:18:08
原創
903 人瀏覽過

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

以區塊的形式迭代列表: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中文網其他相關文章!

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