複数のリストのインターリーブ: Python 的アプローチ
Python では、同じ長さのリストをインターリーブするのが一般的なタスクです。 2 つのリスト [1,2,3] と [10,20,30] の例を考えてみましょう。私たちの目標は、それらを [1,10,2,20,3,30] に変換することです。
簡潔な解決策として、zip 関数でリスト内包表記を使用できます。 zip 関数は 2 つのリストを受け取り、各ペアに各リストの 1 つの要素が含まれるペアのリストを作成します。これらのペアを反復処理し、ペア内のすべての要素を含めて新しいリストを作成します。コードは次のとおりです:
l1 = [1, 2, 3] l2 = [10, 20, 30] result = [val for pair in zip(l1, l2) for val in pair] print(result) # Output: [1, 10, 2, 20, 3, 30]
このアプローチは、リストのペアをインターリーブする場合に効率的に機能します。ただし、インターリーブする複数のリスト (N 個のリストなど) がある場合、この解決策を次のように拡張できます。
lists = [l1, l2, ...] # Assume lists contains N lists result = [val for tup in zip(*lists) for val in tup] print(result)
zip 関数のリストの前に * 演算子を使用することで、リストのリストを解凍できます。を個々の引数に分割することで、すべてのリストを同時にインターリーブできるようになります。この手法は、任意の長さの複数のリストを処理する場合に便利です。
以上がPython で複数のリストをインターリーブする方法?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。