Python でイテラブルをチャンクに圧縮する
Python では、zip([iter(s)]n)関数を使用すると、リストを同じ長さのチャンクに分割できます。仕組みは次のとおりです:
説明:
zip(*[iter(s)]*n):
同等の詳細コード:
zip(*[iter(s)]*n の内部動作を理解する) )、同等のコードをより冗長に書き出してみましょう。構文:
s = [1, 2, 3, 4, 5, 6, 7, 8, 9] n = 3 # Create iterators for the list iter1 = iter(s) iter2 = iter(s) iter3 = iter(s) # Zip the iterators to create chunks chunks = zip(iter1, iter2, iter3) # Convert the generator to a list list_chunks = list(chunks)
この冗長バージョンでは:
出力:
元のコードと詳細コードの出力は同じになります:
[(1, 2, 3), (4, 5, 6), (7, 8, 9)]
これは次のとおりです。 zip(*[iter(s)]*n) がイテレータとzip 関数。
以上がPythonでzip(*[iter(s)]*n)を使用してリストを等しいチャンクに分割する方法?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。