ホームページ >バックエンド開発 >Python チュートリアル >Python で長さが等しくない 2 つのリストをインターリーブする方法

Python で長さが等しくない 2 つのリストをインターリーブする方法

Patricia Arquette
Patricia Arquetteオリジナル
2024-12-02 05:44:09866ブラウズ

How to Interleave Two Lists of Unequal Lengths in Python?

Python で 2 つのリストを交互にインターレースする

2 つのリストを交互に結合する場合、最初のリストの要素は 2 番目のリストよりも 1 つ多くなります。 , Python にはいくつかのアプローチがあります。

1 つの方法では、 lists:

list1 = ['f', 'o', 'o']
list2 = ['hello', 'world']
result = [None]*(len(list1)+len(list2))
result[::2] = list1
result[1::2] = list2

このアプローチでは、入力リストを結合した長さに等しい長さの新しいリストが作成されます。 list1 の偶数インデックス値と list2 の奇数インデックス値を新しいリストに割り当て、目的のインターリーブ効果が得られます。

あるいは、itertools モジュールの zip_longest() 関数を使用することもできます。

from itertools import zip_longest
result = list(zip_longest(list1, list2, fillvalue=None))

zip_longest() はリストを要素ごとに結合し、欠落している値を指定された fillvalue で埋めます。 fillvalue として None を指定するため、要素が 1 つ少ないリストには None 値が埋め込まれ、目的のインターレースが実現されます。 zip_longest() によって返されたジェネレーターをリストに変換することで、最終結果が得られます。

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

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