チャンク内のリストの反復: 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 サイトの他の関連記事を参照してください。