ホームページ > バックエンド開発 > Python チュートリアル > Python でチャンク内のリストを効率的に反復処理する方法

Python でチャンク内のリストを効率的に反復処理する方法

Patricia Arquette
リリース: 2024-12-23 09:06:24
オリジナル
971 人が閲覧しました

How to Efficiently Iterate Over a List in Chunks in Python?

チャンクでリストを反復処理する方法

チャンクでリストを反復処理する必要性は、大規模なデータセットの処理など、さまざまなプログラミング シナリオで発生します。この記事では、このタスクを達成するための最も効率的で 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 的な代替手段は次のとおりです。提案:

while ints:
    foo += ints[0] * ints[1] + ints[2] * ints[3]
    ints[0:4] = []
ログイン後にコピー

このアプローチは、Python のリスト スライスを利用して処理された要素を削除し、よりクリーンなソリューションを提供します。

Python 3.12 の chunker() の紹介

Python 3.12 のリリースにより、待望の chunker()関数が導入されました:

from itertools import islice

def chunker(seq, size):
    it = iter(seq)
    while True:
        chunk = list(islice(it, size))
        if not chunk:
            break
        yield chunk
ログイン後にコピー

この関数は、任意のタイプのシーケンスをエレガントに反復し、希望のサイズのチャンクに分割します。次の例は、その多用途性を示しています。

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'

print('|'.join(chunker(text, 10)))
# I am a ver|y, very he|lpful text

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']
ログイン後にコピー

chunker() 関数は、Python のすでに充実しているリスト操作のエコシステムを強化し、その使いやすさをさらに実証します。

以上がPython でチャンク内のリストを効率的に反復処理する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート