ホームページ > バックエンド開発 > Python チュートリアル > 長さが等しくない 2 つのリストを Python でインターリーブするにはどうすればよいですか?

長さが等しくない 2 つのリストを Python でインターリーブするにはどうすればよいですか?

Barbara Streisand
リリース: 2024-12-12 16:41:16
オリジナル
891 人が閲覧しました

How Can I Pythonically Interleave Two Lists of Unequal Lengths?

リストのPythonic Interleaving

2つのリストを交互に組み合わせるのは、プログラミングにおける一般的なタスクです。最初のリストの項目が 2 番目のリストよりも 1 つだけ多い場合、Python でこれを実現する方法がいくつかあります。以下に、Python のオプションをいくつか示します。

1.スライスの使用:

1 つの方法は、スライスを使用して、両方のリストの要素をインターリーブする新しいリストを作成することです。これは、次の手順で実行できます。

  1. 2 つの入力リストの長さの合計に等しい長さの新しいリストを作成します。
  2. 偶数のインデックス付き要素を割り当てます。新しいリストの要素を最初の入力リストの項目に割り当てます。
  3. 新しいリストの奇数のインデックス付き要素を 2 番目の入力の項目に割り当てます。 list.

例を示します:

list1 = ['f', 'o', 'o']
list2 = ['hello', 'world']
result = [None]*(len(list1)+len(list2))
result[::2] = list1
result[1::2] = list2
print(result)
ログイン後にコピー

出力:

['f', 'hello', 'o', 'world', 'o']
ログイン後にコピー
ログイン後にコピー

2. itertools パッケージの使用:

Python の itertools パッケージには、指定された間隔でリストの要素を反復処理するために使用できる islice と呼ばれる便利な関数が用意されています。これを使用して 2 つのリストをインターリーブする方法は次のとおりです:

import itertools
list1 = ['f', 'o', 'o']
list2 = ['hello', 'world']
result = list(itertools.chain(*itertools.zip_longest(list1, list2)))
print(result)
ログイン後にコピー

出力:

['f', 'hello', 'o', 'world', 'o']
ログイン後にコピー
ログイン後にコピー

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

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート