さまざまな長さのリストを扱う場合、それらを一緒に圧縮するのが困難になる可能性があります。 Python のデフォルトの zip() 関数は、短いリストの要素と長いリストの要素をペアにし、長いリストの残りの要素はペアにしないままにします。この制限に対処するために、反復反復の力を活用できます。
短いリストを反復する効果的な方法の 1 つは、itertools.cycle 関数を利用することです。この関数は、使い果たした後でも反復可能要素を無限にループする反復子を作成します。 zip 操作にサイクルを組み込むことで、長いリストが完全にカバーされるまで短いリストを確実に繰り返すことができます。
サイズの異なるリストを圧縮する itertools.cycle の利用は簡単です。 。次のコード スニペットは、その実装を示しています。
<code class="python">import itertools A = [1, 2, 3, 4, 5, 6, 7, 8, 9] B = ["A", "B", "C"] from itertools import cycle zip_list = zip(A, cycle(B)) if len(A) > len(B) else zip(cycle(A), B) for item in zip_list: print(item)</code>
提供されたコードを実行すると、次の出力が生成されます。
(1, 'A') (2, 'B') (3, 'C') (4, 'A') (5, 'B') (6, 'C') (7, 'A') (8, 'B') (9, 'C')
観察できるように、短いほどリスト B は、長いリスト A のすべての要素がペアになるまで繰り返されます。このシームレスな繰り返しにより、ペアになっていない要素がなくなり、データを失うことなくリスト全体に対して操作を実行できるようになります。
以上がPython で反復繰り返しを使用してサイズの異なるリストを圧縮する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。