Pythonでリストに要素を1つ追加するには、append()メソッドを使います。
複数の要素をまとめて追加する場合はextend()、追加する位置を指定したい場合はinsert()が適しています。
この記事では、それぞれの使い方と違いを初心者向けに解説します。
append()でリストの末尾に追加する
リストの末尾に要素を1つ追加する基本的な書き方は、次のとおりです。
fruits = ["りんご", "みかん"]
fruits.append("バナナ")
print(fruits)実行結果は次のとおりです。
['りんご', 'みかん', 'バナナ']
fruits.append("バナナ")によって、リストの末尾に文字列の"バナナ"が追加されました。
Pythonでリストに要素を1つ追加するなら、append()を使うのが基本です。
数値や別のデータ型も追加できる
append()では、文字列だけでなく数値なども追加できます。
numbers = [10, 20, 30]
numbers.append(40)
print(numbers)実行結果は次のとおりです。
[10, 20, 30, 40]
リスト自体を1つの要素として追加することもできます。
numbers = [10, 20]
numbers.append([30, 40])
print(numbers)実行結果は次のとおりです。
[10, 20, [30, 40]]
この場合、30と40が別々に追加されるわけではありません。[30, 40]というリスト全体が、1つの要素として追加されます。
ここは初心者が混同しやすいポイントです。複数の要素を別々に追加したい場合は、次に説明するextend()を使います。
extend()で複数の要素を追加する
別のリストに含まれる複数の要素をまとめて追加するには、extend()を使用します。
numbers = [10, 20]
numbers.extend([30, 40])
print(numbers)実行結果は次のとおりです。
[10, 20, 30, 40]
append()とextend()の違いを比べると、次のようになります。
list_a = [10, 20]
list_b = [10, 20]
list_a.append([30, 40])
list_b.extend([30, 40])
print(list_a)
print(list_b)実行結果は次のとおりです。
[10, 20, [30, 40]]
[10, 20, 30, 40]
append()は渡したデータを「1つの要素」として追加します。一方、extend()はリストの中身を取り出して、1つずつ末尾に追加します。
insert()で追加する位置を指定する
リストの途中に要素を追加したい場合は、insert()を使います。
fruits = ["りんご", "バナナ"]
fruits.insert(1, "みかん")
print(fruits)実行結果は次のとおりです。
['りんご', 'みかん', 'バナナ']
insert(1, "みかん")の1は、追加する位置を表すインデックスです。
Pythonのインデックスは0から始まるため、それぞれの位置は次のようになります。
0:りんご
1:みかん
2:バナナ
insert()では、最初の引数に位置、2番目の引数に追加する要素を指定します。
+演算子で新しいリストを作る
+演算子を使ってリスト同士を結合する方法もあります。
numbers = [10, 20]
new_numbers = numbers + [30, 40]
print(new_numbers)実行結果は次のとおりです。
[10, 20, 30, 40]
append()やextend()は、元のリストそのものを変更します。一方、+演算子では、結合した結果を持つ新しいリストが作られます。
元のリストを残したい場合は+演算子、元のリストへ直接追加したい場合はappend()やextend()というように使い分けられます。
append()の戻り値に注意する
append()はリストを直接変更しますが、変更後のリストを戻り値として返すわけではありません。
次の書き方には注意が必要です。
numbers = [10, 20]
numbers = numbers.append(30)
print(numbers)実行結果は次のとおりです。
None
append()の戻り値はNoneです。そのため、numbers = numbers.append(30)と代入すると、変数numbersの中身がNoneに置き換わります。
append()を使うときは、基本的に代入せず、そのまま呼び出します。
numbers = [10, 20]
numbers.append(30)
print(numbers)追加方法の使い分け
リストへの追加方法は、目的に合わせて選びます。
- 要素を1つ追加する:
append() - 複数の要素を追加する:
extend() - 位置を指定して追加する:
insert() - 元のリストを残して新しいリストを作る:
+演算子
「何個追加するのか」「元のリストを変更してよいか」の2点を考えると、方法を選びやすくなります。
まとめ
Pythonでリストの末尾に要素を1つ追加するには、append()を使用します。
numbers = [10, 20]
numbers.append(30)
print(numbers)複数の要素を追加するときはextend()、位置を指定するときはinsert()を使用します。
特に、append([30, 40])はリスト全体を1つの要素として追加する点と、append()の戻り値はNoneになる点に注意しましょう。

