短い方を繰り返してサイズの異なるリストを圧縮する
長さが等しくない 2 つのリストを圧縮しようとすると、組み込みの zip 関数が失敗します大きいリストと一致させるために短いリストを繰り返さないことで短くなります。これを克服するには、別のアプローチが必要です。
itertools.cycle を使用した解決策
itertools.cycle 関数は、反復可能オブジェクトを無限に反復する機能を提供します。この機能を利用すると、長いリストと一緒に圧縮しながら、短いリストを無限に繰り返すことができます。
実装:
<code class="python">import itertools A = [1, 2, 3, 4, 5, 6, 7, 8, 9] B = ["A", "B", "C"] zip_list = zip(A, itertools.cycle(B)) if len(A) > len(B) else zip(itertools.cycle(A), B)</code>
このソリューションでは、条件付きを使用します。ステートメントを使用して、どのリストを繰り返すかを決定します。 A が B より長い場合、itertools.cycle を使用して B を繰り返し、B が A より長い場合、A を繰り返します。
結果の zip_list には、A と B の要素をペアにしたタプルが含まれます。B はA の長さに一致するように必要に応じて繰り返されます。このアプローチにより、両方のリストのすべての要素が確実にペアになり、短い方のリストが必要に応じて繰り返されます。
以上が長さが等しくないリストを短い方を繰り返して圧縮するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。