値が繰り返される異なるサイズのリストを圧縮する方法
長さが等しくないリストを扱う場合、組み込みの zip() 関数変化が乏しいままになる可能性があります。元の質問では、リスト A と B を圧縮する方法を求めています。B の方が短い場合でも、その値を必要に応じて繰り返します。
ループを使用した提供されたコードでこれを実現できますが、itertools を使用するとより簡潔な解決策が利用可能です。 。サイクル。この関数は、指定された iterable を循環して無限に繰り返す反復子を返します。
itertools.cycle を使用した解決策:
from itertools import cycle A = [1,2,3,4,5,6,7,8,9] B = ["A","B","C"] zip_list = zip(A, cycle(B)) if len(A) > len(B) else zip(cycle(A), B)
この場合、A がB よりも長い場合、zip_list は A の値と B の繰り返し値を組み合わせて、すべての要素が含まれるようにします。 B が A より長い場合、プロセスは逆になります。
itertools.cycle 関数は、この繰り返しのペアリングを実現する便利な方法を提供し、Python で異なるサイズのリストを処理するための効率的なソリューションになります。
以上がPython で値が繰り返される長さが等しくないリストを圧縮する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。