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

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になる点に注意しましょう。

この記事が役に立ったらシェア
  • URLをコピーしました!
この記事の内容