Pythonでプログラムを書いていると、リストへ新しいデータを追加したい場面があります。
例えば、ユーザーが入力した内容を記録したり、計算結果を順番に保存したりするときです。
Pythonでリストに要素を追加する主な方法は、次の3つです。
- 「append()」:末尾に1つ追加する
- 「insert()」:位置を指定して追加する
- 「extend()」:複数の要素をまとめて追加する
この記事では、それぞれの使い方と違いを初心者向けに解説します。
リストとは
リストとは、複数のデータを順番にまとめて管理できる仕組みです。
# 3つの数値を入れたリスト
numbers = [1, 2, 3]
print(numbers) # [1, 2, 3]リストは角括弧「[]」を使って作り、それぞれの要素をカンマで区切ります。
作成したあとから要素を追加したり、削除したりできることもリストの特徴です。
append()で末尾に1つ追加する
リストの末尾に要素を1つ追加する場合は、「append()」を使います。
# 最初のリスト
numbers = [1, 2, 3]
# 末尾に4を追加
numbers.append(4)
print(numbers) # [1, 2, 3, 4]「append()」で追加した要素は、必ずリストの一番後ろに入ります。
文字列も同じように追加できます。
# 買い物リスト
items = ["りんご", "牛乳"]
# 新しい商品を追加
items.append("パン")
print(items) # ['りんご', '牛乳', 'パン']ユーザーの入力や計算結果を順番に保存するときは、基本的に「append()」を使います。
insert()で位置を指定して追加する
リストの途中へ要素を追加したい場合は、「insert()」を使います。
# 最初のリスト
numbers = [1, 2, 3]
# インデックス1の位置に10を追加
numbers.insert(1, 10)
print(numbers) # [1, 10, 2, 3]「insert()」の書き方は次のとおりです。
リスト.insert(追加する位置, 追加する要素)Pythonのインデックスは「0」から始まります。そのため、インデックス「1」は2番目の位置です。
新しい要素を挿入すると、もともとその位置にあった要素と、それ以降の要素が後ろへ移動します。
先頭に追加する場合は、位置に「0」を指定します。
numbers = [2, 3, 4]
# 先頭に1を追加
numbers.insert(0, 1)
print(numbers) # [1, 2, 3, 4]追加する位置に意味がある場合は「insert()」が便利です。ただし、末尾に追加するだけなら、目的が明確な「append()」のほうが読みやすくなります。
extend()で複数の要素を追加する
複数の要素をまとめて末尾へ追加する場合は、「extend()」を使います。
# 最初のリスト
numbers = [1, 2, 3]
# 4、5、6をまとめて追加
numbers.extend([4, 5, 6])
print(numbers) # [1, 2, 3, 4, 5, 6]「extend()」に渡したリストの中身が、一つずつ元のリストへ追加されます。
# 2つの買い物リスト
food = ["りんご", "パン"]
drinks = ["水", "お茶"]
# drinksの中身をfoodへ追加
food.extend(drinks)
print(food) # ['りんご', 'パン', '水', 'お茶']複数のリストに分かれているデータを一つにまとめたいときに使えます。
append()とextend()の違い
「append()」と「extend()」は、どちらもリストの末尾へ追加するメソッドです。
違いは、渡したリストを「1つの要素として扱うか」「中身を取り出して追加するか」にあります。
append()の場合
numbers = [1, 2, 3]
# リスト自体を1つの要素として追加
numbers.append([4, 5])
print(numbers) # [1, 2, 3, [4, 5]]「[4, 5]」というリスト全体が、1つの要素として追加されています。
extend()の場合
numbers = [1, 2, 3]
# リストの中身を1つずつ追加
numbers.extend([4, 5])
print(numbers) # [1, 2, 3, 4, 5]こちらは「4」と「5」が別々の要素として追加されています。
「荷物を箱ごと入れる」のが「append()」、「箱から中身を出して入れる」のが「extend()」と考えると、違いをイメージしやすくなります。
追加結果を同じ変数へ代入しない
初心者が間違えやすいのが、「append()」などの実行結果を同じ変数へ代入する書き方です。
numbers = [1, 2, 3]
# この書き方は正しくない
numbers = numbers.append(4)
print(numbers) # None「append()」は元のリストを直接変更しますが、変更後のリストを戻り値として返すわけではありません。戻り値は「None」です。
そのため、次のように代入せずに使います。
numbers = [1, 2, 3]
# 元のリストを直接変更する
numbers.append(4)
print(numbers) # [1, 2, 3, 4]「insert()」と「extend()」も同様に、実行結果を変数へ代入する必要はありません。
目的に合わせて使い分ける
メソッド名だけを暗記するよりも、「どのように追加したいのか」で判断すると覚えやすくなります。
- 末尾に1つ追加したい:「append()」
- 指定した位置に追加したい:「insert()」
- 複数の要素をまとめて追加したい:「extend()」
普段のプログラムでは、末尾へ1つずつ追加する「append()」を使う機会が多くなります。
最初から3つを完璧に覚える必要はありません。まずは「append()」に慣れ、途中への挿入や複数要素の追加が必要になったときに、ほかの方法を選ぶとよいでしょう。
ユーザーの入力をリストへ追加する
最後に、ユーザーが入力したデータをリストへ追加する例を見てみましょう。
# 入力内容を保存する空のリスト
items = []
# 3回入力を受け取る
for i in range(3):
value = input("商品名を入力してください: ")
# 入力された商品を末尾に追加
items.append(value)
# 保存した内容を表示
print("入力された商品:", items)例えば、「りんご」「牛乳」「パン」と入力すると、次のようなリストが作られます。
入力された商品: ['りんご', '牛乳', 'パン']最初に空のリストを用意し、新しいデータが発生するたびに「append()」で追加しています。
この「空のリストを作り、処理しながら結果をためる」という形は、Pythonのさまざまなプログラムで使われます。
まとめ
Pythonでリストに要素を追加する主な方法は、次の3つです。
- 「append()」:末尾に1つの要素を追加する
- 「insert()」:位置を指定して要素を追加する
- 「extend()」:複数の要素をまとめて追加する
特に注意したいのが、「append()」と「extend()」の違いです。
numbers.append([4, 5])
# [1, 2, 3, [4, 5]]
numbers.extend([4, 5])
# [1, 2, 3, 4, 5]1つのまとまりとして追加するのか、中身を個別に追加するのかを考えると、適切な方法を選べます。
リストへの追加は、入力内容の保存やデータの集計などで頻繁に使う基本操作です。実際にコードを動かしながら、それぞれの結果の違いを確認してみましょう。

