Python リストの結合
1. 演算子による結合 (Using the + Operator)
Pythonにおいて、2つ以上のリストを結合する最も簡単な方法は + 演算子を使用することです。これは「連結(Concatenation)」と呼ばれ、元のリストを変更せずに新しいリストを作成します。
例:2つのリストを結合する
list1 = ["a", "b", "c"]
list2 = [1, 2, 3]
list3 = list1 + list2
print(list3)2. ループと append() による結合
もう一つの方法は、一方のリストの全要素をループで取り出し、もう一方のリストに一つずつ追加していく方法です。特定の条件に基づいて追加したい場合などに有効です。
例:list2の項目を一つずつlist1に追加する
list1 = ["a", "b", "c"]
list2 = [1, 2, 3]
for x in list2:
list1.append(x)
print(list1)3. extend() メソッドによる結合
extend() メソッドは、あるリストの末尾に別のリスト(またはイテラブルなオブジェクト)の要素をすべて追加するために使用されます。+ 演算子とは異なり、**元のリストを直接書き換える(インプレース操作)**ため、新しい変数を作成する必要がありません。
例:extend() を使用して list2 を list1 の末尾に追加する
list1 = ["a", "b", "c"]
list2 = [1, 2, 3]
list1.extend(list2)
print(list1)4. どの方法を選ぶべきか?
実務で使い分けるための指針は以下の通りです。
| 手法 | 特徴 | おすすめの用途 |
|---|---|---|
+ 演算子 | 新しいリストを生成する | 元のリストを保持しておきたい場合 |
extend() | 元のリストを直接拡張する | メモリ効率を重視し、元のリストを更新して良い場合 |
append() ループ | 要素ごとに処理を挟める | 追加する要素をフィルタリングしたい場合 |
エンジニアの知恵:
大規模なデータを扱う際、+ 演算子を繰り返すとその都度新しいリストオブジェクトがメモリ上に生成されるため、パフォーマンスが低下することがあります。既存のリストを大きくしていく場合は extend() を選ぶのがスマートな選択です。