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 サイトの他の関連記事を参照してください。