ホームページ >バックエンド開発 >Python チュートリアル >Python で複数の等長リストをインターリーブする方法?

Python で複数の等長リストをインターリーブする方法?

Barbara Streisand
Barbara Streisandオリジナル
2024-11-14 18:51:02759ブラウズ

How to Interleave Multiple Equilength Lists in Python?

Python での複数の等長リストのインターリーブ: Python 的アプローチ

Python では、同じ長さの複数のリストをインターリーブするタスクが頻繁に発生します。この操作には、入力リストの要素を交互に入れ替えて新しいリストを作成することが含まれます。

問題ステートメント:

同じ長さのリストが 2 つ以上ある場合、Python 的な方法を見つけます。元の要素を保持しながら、それらの要素を単一のリストにインターリーブします。 order.

解決策:

強力な zip() 関数とリスト内包表記を使用すると、簡潔かつエレガントな方法で目的のインターリーブを実現できます。

2 つのリスト l1 と l2 について、次のコード スニペットはインターリーブを示しています。 process:

[val for pair in zip(l1, l2) for val in pair]

このコードは、zip() 関数を使用して、l1 と l2 から対応する要素のペアを作成します。次に、各ペアを反復処理し、その要素 (val) をリスト内包表記に展開します。

例:

l1 = [1, 2, 3]
l2 = [10, 20, 30]

interleaved_list = [val for pair in zip(l1, l2) for val in pair]

print(interleaved_list)  # [1, 10, 2, 20, 3, 30]

N リストの一般化:

同じテクニックを一般化して、任意の数のリスト:

lists = [l1, l2, ..., ln]
[val for tup in zip(*lists) for val in tup]

このコードは、* 演算子を使用してリストを zip() の個別の引数に解凍し、すべての入力リストから対応する要素のタプルを作成します。リスト内包表記は各タプルを反復処理し、その要素を抽出してインターリーブされたリストを構築します。

以上がPython で複数の等長リストをインターリーブする方法?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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