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

Python を使用してチャンク内のリストを効率的に反復するにはどうすればよいですか?

Patricia Arquette
リリース: 2024-12-20 00:18:08
オリジナル
860 人が閲覧しました

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

チャンク内のリストの反復: Python の観点

Python では、チャンク内のリストを反復するタスクは次のように実行できます。いろいろな方法で。一般的なアプローチの 1 つは、ループを使用して特定の間隔で要素に段階的にアクセスすることです。

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 思考」を導入する可能性があります。より Python 的なアプローチには、組み込みの range() 関数の活用とスライスが含まれます。

def chunker(seq, size):
    return (seq[pos:pos + size] for pos in range(0, len(seq), size))
ログイン後にコピー

チャンカー関数は、シーケンスを反復処理するジェネレーター式を作成し、さまざまな位置から開始して目的のサイズのチャンクを生成します。これは非常に効率的であり、明示的なループやインデックス操作の必要がなくなります。

たとえば、次のコードを考えてみましょう:

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

ここでは、チャンカー関数がテキストを 7 つのグループに分割します。

同様に、チャンカー関数を使用して任意の文字のシーケンスを処理できます。動物のリストなどのタイプ:

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 中国語 Web サイトの他の関連記事を参照してください。

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