Pythonでリストを連結する6つの方法
このチュートリアルでは、Pythonでリストを連結するさまざまな方法を紹介します。Pythonのリストは同種の要素を格納し、それらに対して操作を行うために使用されます。
一般的に、連結とは特定のデータ構造の要素を端から端までつなげるプロセスです。
Pythonでリストを連結するための6つの方法は次のとおりです。
- concatenation (+) operator
- Naive Method
- List Comprehension
- extend() method
- ‘*’ operator
- itertools.chain() method
リストの連結に使用される連結演算子、(+)
‘+’演算子は、2つのリストを連結するために使用することができます。一方のリストをもう一方のリストの末尾に追加し、新しいリストを出力として生成します。
こんにちは、私は日本語を勉強しています。
list1 = [10, 11, 12, 13, 14]
list2 = [20, 30, 42]
res = list1 + list2
print ("Concatenated list:\n" + str(res))
出力:
Concatenated list:
[10, 11, 12, 13, 14, 20, 30, 42]
2. リスト結合の素朴な方法
単純な方法では、forループを使用して第2のリストを走査します。その後、第2のリストの要素が第1のリストに追加されます。第1のリストは、第1と第2のリストを結合したものになります。
以下の文を日本語で自然に言い換えてください。1つのオプションで構いません。
Example:
元気ですか?
– お元気ですか?
list1 = [10, 11, 12, 13, 14]
list2 = [20, 30, 42]
print("List1 before Concatenation:\n" + str(list1))
for x in list2 :
list1.append(x)
print ("Concatenated list i.e. list1 after concatenation:\n" + str(list1))
出力:
List1 before Concatenation:
[10, 11, 12, 13, 14]
Concatenated list i.e. list1 after concatenation:
[10, 11, 12, 13, 14, 20, 30, 42]
リスト内包表記を使ってリストを連結する。
Pythonのリスト内包表記は、Pythonで2つのリストを連結する別の方法です。リスト内包表記は、既存のリストに基づいて要素のリストを構築/生成するプロセスです。
以下のインラインのforループは、要素ごとにリストを処理し、トラバースするためにforループを使用しています。このインラインのforループは、ネストされたforループと等価です。
例えば、私は毎日朝食を食べる
(たとえば、わたしはまいにちちょうしょくをたべる)
list1 = [10, 11, 12, 13, 14]
list2 = [20, 30, 42]
res = [j for i in [list1, list2] for j in i]
print ("Concatenated list:\n"+ str(res))
出力:
Concatenated list:
[10, 11, 12, 13, 14, 20, 30, 42]
4. リストの連結のためのPythonのextend()メソッド
Pythonのextend()メソッドは、Pythonで2つのリストを連結するために使用することができます。extend()関数は渡されたパラメータをイテレーションし、アイテムをリストに追加し、リストを線形に拡張します。
文法:
list.extend(iterable)
日本への旅行は素晴らしい経験です。
list1 = [10, 11, 12, 13, 14]
list2 = [20, 30, 42]
print("list1 before concatenation:\n" + str(list1))
list1.extend(list2)
print ("Concatenated list i.e ,ist1 after concatenation:\n"+ str(list1))
リスト2のすべての要素がリスト1に追加され、それによってリスト1が更新され、結果が出力されます。
出力:
list1 before concatenation:
[10, 11, 12, 13, 14]
Concatenated list i.e ,ist1 after concatenation:
[10, 11, 12, 13, 14, 20, 30, 42]
5. リスト結合のためのPythonの「*」演算子
Pythonの’*’演算子は、Pythonで簡単に2つのリストを連結するために使用することができます。
Pythonの「*」演算子は、基本的にインデックス引数で指定されたアイテムのコレクションを展開します。
例えば、リストmy_list = [1, 2, 3, 4]を考えてみてください。
以下の文を日本語で言い換える(一つのオプション):
「*my_listはリスト内の要素をインデックス位置に置き換えるため、リストのアイテムを展開します。」
金曜日に友達と映画館に行きます。
1. 友達とは金曜日に映画館に行く予定です。
2. 金曜日に映画館に友達と一緒に行くつもりです。
list1 = [10, 11, 12, 13, 14]
list2 = [20, 30, 42]
res = [*list1, *list2]
print ("Concatenated list:\n " + str(res))
上記のコードのスニペットでは、res = [*list1, *list2] のステートメントにより、リスト1とリスト2が与えられた順序で置き換えられます。つまり、リスト2の要素の後にリスト1の要素が来る形で結合が行われ、以下の出力が得られます。
出力:
Concatenated list:
[10, 11, 12, 13, 14, 20, 30, 42]
6. リストを連結するためのPythonのitertools.chain()メソッド
Pythonのitertoolsモジュールのitertools.chain()関数は、Pythonでリストを連結するためにも使用することができます。
itertools.chain()関数は、リスト、文字列、タプルなどの異なるイテラブルをパラメータとして受け付け、それらの連続を出力します。
線形のシーケンスとなります。要素のデータ型は、chain()メソッドの機能に影響を与えません。
例えば、itertools.chain([1, 2], [‘John’, ‘Bunny’])という文は、次のような出力を生成します:1 2 John Bunny。
例:
日本への旅行を計画しています。
import itertools
list1 = [10, 11, 12, 13, 14]
list2 = [20, 30, 42]
res = list(itertools.chain(list1, list2))
print ("Concatenated list:\n " + str(res))
出力:
Concatenated list:
[10, 11, 12, 13, 14, 20, 30, 42]
結論
したがって、この記事では、Pythonでリストを連結する異なる方法を理解し、実装しました。