ホームページ > バックエンド開発 > Python チュートリアル > Python リストをチャンク単位で効率的に反復処理するにはどうすればよいですか?

Python リストをチャンク単位で効率的に反復処理するにはどうすればよいですか?

Susan Sarandon
リリース: 2024-12-19 19:36:10
オリジナル
331 人が閲覧しました

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

チャンク内のリストの反復: Python ソリューション

この記事では、チャンク内の Python リストを反復する方法を検討します。特定の数の要素で構成されます。この状況では、一度に 4 つの整数を操作する必要があります。

従来のアプローチ

提供されたコード セグメントは、リストをチャンク化するための 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.チャンカー関数の使用

Python 3.12 以降、Python にはチャンカー関数が導入されました。これは、シーケンスをチャンクするための簡潔かつ効率的な方法を提供します。

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

この関数は同様にジェネレーターを作成し、要素のリストを生成します。からのsequence.

結論

チャンカー関数は、Python 3.12 以降でリストをチャンクするためのネイティブで効率的なソリューションを提供します。以前のバージョンでは、グルーパー関数が適切な代替手段を提供します。これらのメソッドを使用すると、大きなリストを操作するときに、より簡潔で慣用的なコードが可能になります。

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

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