ホームページ  >  記事  >  バックエンド開発  >  Python で不均一なサイズのリストを圧縮する方法: `itertools.cycle` とカスタム ループの探索

Python で不均一なサイズのリストを圧縮する方法: `itertools.cycle` とカスタム ループの探索

Linda Hamilton
Linda Hamiltonオリジナル
2024-10-29 00:17:02820ブラウズ

How to Zip Unevenly Sized Lists in Python: Exploring `itertools.cycle` and Custom Loops

サイズが不均一なリストの圧縮: 代替アプローチの探索

Python の組み込み zip 関数の固有の動作は、次のリストを処理するときに課題を引き起こします。さまざまな長さ。これは、一方のリストが他方のリストより短く、ペアリングする要素の数が等しくない場合に明らかです。

この制限に対処するために、目的の出力を達成するためのいくつかの手法が存在し、短いリストを繰り返して実行します。長い方の長さを合わせます。

1. itertools.cycle

で zip 関数を利用する この方法では、Python の itertools.cycle 関数を利用して、短いリストの要素を無限にループする反復可能オブジェクトを作成します。サイクルを活用することで、長いリストの要素と短いリストの繰り返し要素をペアにすることが可能になります。

<code class="python">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)</code>

2.カスタム For ループの実装

別のアプローチでは、大きいリストを手動で繰り返し、各要素を短いリストの対応する要素とペアにします。短いリストが使い果たされた場合、繰り返しは最初から始まり、大きなリスト内のすべての要素がペアになるまで要素を繰り返します。

<code class="python">idx = 0
zip_list = []
for value in larger:
    zip_list.append((value,smaller[idx]))
    idx += 1
    if idx == len(smaller):
        idx = 0</code>

これらの戦略のいずれかを採用することで、開発者は 2 つのリストを効果的に圧縮できます。必要に応じて短いリストが繰り返され、長いリストの長さに一致するようにします。これにより、長さが等しくないリストの操作を伴うさまざまなデータ処理や操作タスクの可能性が広がります。

以上がPython で不均一なサイズのリストを圧縮する方法: `itertools.cycle` とカスタム ループの探索の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。