の異なる方法を使用して 2 つのリストを連結する方法を見てみましょう。 パイソン 。この操作は、同様の方法で処理する必要がある要素のリストが多数ある場合に便利です。
Input: test_list1 = [1, 4, 5, 6, 5] test_list2 = [3, 5, 7, 2, 5] Output: [1, 4, 5, 6, 5, 3, 5, 7, 2, 5] Explanation: The output list is the list we get from Merging both the input list.>
Python 2 つのリストを結合する
この記事で説明する方法は次のとおりです。
ダーツリスト
- 素朴なメソッドの使用
- の使用 + 演算子
- 使用する リストの内包表記
- 使用する 伸ばす() 方法
- 使用する * 演算子
- 使用する itertools.chain()
- を使用して 2 つのリストをマージします reduce()関数
Python で 2 つのリストをマージする ナイーブメソッドを使用する
このメソッドでは、2 番目のリストを走査し、最初のリストに要素を追加し続けるため、最初のリストには両方のリストのすべての要素が含まれるため、 追加します。
Python3
# Initializing lists> test_list1>=> [>1>,>4>,>5>,>6>,>5>]> test_list2>=> [>3>,>5>,>7>,>2>,>5>]> # using naive method to concat> for> i>in> test_list2 :> >test_list1.append(i)> # Printing concatenated list> print> (>'Concatenated list using naive method : '> >+> str>(test_list1))> |
>
>出力
Concatenated list using naive method : [1, 4, 5, 6, 5, 3, 5, 7, 2, 5]>
時間計算量: O(n + m)。ここで、n と m は、それぞれ指定された test_list1 と test_list2 の長さです。
補助スペース: オ(メートル)
+ 演算子を使用して 2 つのリストを連結する
リストの連結を実行する最も一般的な方法は、 + 演算子 あるリスト全体を他のリストの後ろに簡単に追加できるため、 連結。
Python3
# Initializing lists> test_list3>=> [>1>,>4>,>5>,>6>,>5>]> test_list4>=> [>3>,>5>,>7>,>2>,>5>]> # using + operator to concat> test_list3>=> test_list3>+> test_list4> # Printing concatenated list> print> (>'Concatenated list using + : '> >+> str>(test_list3))> |
>
>出力
Concatenated list using + : [1, 4, 5, 6, 5, 3, 5, 7, 2, 5]>
時間計算量: O(n)。ここで、+ 演算子は両方のリストのすべての要素を反復処理してそれらを連結するため、n は両方のリストの要素の合計数です。
補助スペース: O(n)。連結されたリストを保存するために新しいリストが作成されるため、n は両方のリストの要素の合計数です。
リスト内包表記を使用して Python で 2 つのリストをマージする
リストの内包表記 リストを連結するというこのタスクも実行できます。この場合、新しいリストが作成されますが、この方法は、上で説明したループ方法に代わるワンライナーです。
Python3
# Python3 code to demonstrate list> # concatenation using list comprehension> # Initializing lists> test_list1>=> [>1>,>4>,>5>,>6>,>5>]> test_list2>=> [>3>,>5>,>7>,>2>,>5>]> # using list comprehension to concat> res_list>=> [y>for> x>in> [test_list1, test_list2]>for> y>in> x]> # Printing concatenated list> print> (>'Concatenated list using list comprehension: '> >+> str>(res_list))> |
>
>出力
Concatenated list using list comprehension: [1, 4, 5, 6, 5, 3, 5, 7, 2, 5]>
時間計算量: O(n + m)、n と m は、指定された test_list1 と test_list2 の長さです。
補助スペース: O(k)、ここで k は res_list の長さです。
extend() を使用して 2 つのリストをマージする
の 伸ばす() は Python のリストによって拡張された関数であるため、このタスクの実行に使用できます。この関数は、最初のリストのインプレース拡張を実行します。
Python3
# Python3 code to demonstrate list> # concatenation using list.extend()> # Initializing lists> test_list3>=> [>1>,>4>,>5>,>6>,>5>]> test_list4>=> [>3>,>5>,>7>,>2>,>5>]> # using list.extend() to concat> test_list3.extend(test_list4)> # Printing concatenated list> print> (>'Concatenated list using list.extend() : '> >+> str>(test_list3))> |
>
>出力
Concatenated list using list.extend() : [1, 4, 5, 6, 5, 3, 5, 7, 2, 5]>
Python * 演算子を使用して 2 つのリストを結合する
* 演算子を使用するこのメソッドはリスト連結に新しく追加されたもので、Python 3.6 以降でのみ機能します。いいえ。この演算子を使用すると、複数のリストを連結して新しいリストとして返すことができます。
Python3
# Python3 code to demonstrate list> # concatenation using * operator> # Initializing lists> test_list1>=> [>1>,>4>,>5>,>6>,>5>]> test_list2>=> [>3>,>5>,>7>,>2>,>5>]> # using * operator to concat> res_list>=> [>*>test_list1,>*>test_list2]> # Printing concatenated list> print> (>'Concatenated list using * operator : '> >+> str>(res_list))> |
>
>出力
Concatenated list using * operator : [1, 4, 5, 6, 5, 3, 5, 7, 2, 5]>
Python itertools.chain() を使用して 2 つのリストを結合する
の itertools.chain() 引数を 1 つに連鎖させた後で反復可能オブジェクトを返すため、最初の反復のみが必要な場合は、連結リストを保管する必要はありません。これは、連結リストを 1 回だけ使用する必要がある場合に便利です。
抽象クラスとインターフェイス
Python3
# Python3 code to demonstrate list> # concatenation using itertools.chain()> import> itertools> # Initializing lists> test_list1>=> [>1>,>4>,>5>,>6>,>5>]> test_list2>=> [>3>,>5>,>7>,>2>,>5>]> # using itertools.chain() to concat> res_list>=> list>(itertools.chain(test_list1, test_list2))> # Printing concatenated list> print> (>'Concatenated list using itertools.chain() : '> >+> str>(res_list))> |
>
>出力
Concatenated list using itertools.chain() : [1, 4, 5, 6, 5, 3, 5, 7, 2, 5]>
2 つのリストを連結する Reduce()関数を使用する
まず、reduce 関数をインポートする必要があります。 関数ツール 図書館。次に、2 つの異なるリストを保持する 2 つの変数を初期化します。次に、前のステップで取得したすべてのリストを保存する別のリストを使用します。ネストされたリストを形成する必要があります。ここで、reduce() 関数を使用し、そのネストされたリストを 2 つの変数と一緒にパラメーターとして渡します (2 つのリストを持つことを選択した場合)。そして匿名機能を使用します ラムダ 連結操作を実行してリストに保存します。
Python3
from> functools>import> reduce> test_list1>=> [>1>,>4>,>5>,>6>,>5>]> test_list2>=> [>3>,>5>,>7>,>2>,>5>]> nested_list>=> [test_list1,test_list2]> print>(>reduce>(>lambda> i,j:i>+>j,nested_list,[]))> |
>
>出力
[1, 4, 5, 6, 5, 3, 5, 7, 2, 5]>
時間計算量: O(n+m)、n は最初のリストの長さ、m は 2 番目のリストの長さです。
補助スペース: O(n)、n は考慮されるリストの数です