Pythonで二つのリストを連結する方法
はじめに
リスト連結複数の小さなリストから単一のリストをデイジーチェーンで作成する行為。Pythonでリストを連結するには多くの方法があります。 具体的には、この記事では、プラス演算子、アンパック演算子、乗算演算子、ループ連結の手動、itertools.chain()
extend()
を使用して、Pythonで二つのリストを連結する方法について説明します。以下のすべてのコードスニペットでは、次のリストを使用します。
list_a = list_b =
プラス演算子リストの連結
Pythonで二つのリストを連結する最も簡単で簡単な方法は、プラス(+
)演算子です。
list_c = list_a + list_bprint (list_c)
アンパック演算子リスト連結
このメソッドは、複数のリストを結合することができます。 これはかなり新しい機能であり、Python3.6以降でのみ利用可能です。 Unpacking演算子は、名前が示すように、iterable
オブジェクトをその要素に解凍します。 Unpackingは、単一のリストから大量の引数を生成したいときに便利です。 たとえば、次のようにします。
def foo(a, b, c, d): return a + b + c + d# We want to use the arguments of the following list with the foo function.# However, foo doesn't take a list, it takes 4 numbers, which is why we need to# unpack the list.foo(*list_a)# This is the same as if we were to call foo(1,2,3,4)
10
一言で言えば、リストコンストラクタ()を使用し、複数のリストを次々に開:
list_c = # This is the same as:# list_c = print (list_c)
乗算演算子リスト連結
multiply(*
)演算子は、Pythonのリ これは、リスト全体を複数回繰り返すために使用されます(乗算演算子で表される理由です):
print(list_a * 2)
ループリスト連結のため
このメソッドでは、各要素を別のリストに一つずつ追加しながら、一つのリストを通過します。 ループが終了すると、必要なすべての要素を含む単一のリストが作成されます。
for i in list_b: list_a.append(i)print (list_a)
itertools。chain()リスト連結
このメソッドはiterables
で動作します。 これは、後で連鎖リストを構築するために使用できるイテレータを構築して返します(結果のリスト内の要素の順序を記憶する矢印と考えてください)。
# If we were to call itertools.chain() like soiterator = itertools.chain(, )# Basically the iterator is an arrow which can give us the next() element in a sequence, so if we call a list() constructor with said iterable, it works like this:list(iterator)
ボンネットの下では、これらの行に沿った何かが起こります:このメソッドでは、インポートする必要がありますitertools
:
import itertoolslist_c = list(itertools.chain(list_a, list_b))print (list_c)
extend()リスト連結
これはaa組み込み関数ですそれはリストを展開するために使用することができます。 ここでは、2番目のリストの要素を追加して最初のリストを展開しています。
list_a.extend(list_b)print (list_a)