MENU

Pythonでリストに要素を追加する方法|append・insert・extendの違い

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つのまとまりとして追加するのか、中身を個別に追加するのかを考えると、適切な方法を選べます。

リストへの追加は、入力内容の保存やデータの集計などで頻繁に使う基本操作です。実際にコードを動かしながら、それぞれの結果の違いを確認してみましょう。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次