🔖

【初心者向け】Pythonの append() と extend() の違いを解説

に公開

はじめに

Pythonでリストを扱っていると、要素を追加したい場面がよくあります。

その際、頻繁に使われるのが append()extend()です。
しかし、初心者の方は次のように戸惑うことも多いのではないでしょうか?

「どちらのメソッドを使って要素を追加すればいいのか?」
「結果が思った通りにならない」

私自身も最初は混乱しました。
しかし実は、「何を追加したいのか」によって、使い分けのルールがはっきり決まっています

本記事では append()extend() の違いを、実例とともに整理します。

1. append():そのまま「1つの要素」として追加する

append() は、指定したオブジェクトをそのまま「1つの要素」としてリストの末尾に追加します。

例①:数値を追加する

nums = [1, 2, 3]
nums.append(4)
print(nums)  # [1, 2, 3, 4]

例②:リストを追加する

nums = [1, 2, 3]
nums.append([4, 5])
print(nums)  # [1, 2, 3, [4, 5]]

リスト全体が「1つの要素」として追加されていることがわかります。

2. extend():リストの要素を1つずつ追加する

extend() は、リストやタプルなどの「中身」を順番に展開して追加します。

例:リストを展開して追加

nums = [1, 2, 3]
nums.extend([4, 5])
print(nums)  # [1, 2, 3, 4, 5]

このように、[4, 5]中の値が1つずつ取り出されて、リストに順番に追加されます。

3. 比較まとめ

目的 コード例 結果
1つの要素として追加したい nums.append([4, 5]) [1, 2, 3, [4, 5]]
複数の値を個別の要素として追加したい nums.extend([4, 5]) [1, 2, 3, 4, 5]

🔸 extend() の引数には、繰り返し可能なオブジェクト(list, tuple, strなど) を渡す必要があります。

4. 意図しない結果になりやすい使い方

nums = [1, 2, 3]
nums.append('abc')
print(nums)  # [1, 2, 3, 'abc']

nums = [1, 2, 3]
nums.extend('abc')
print(nums)  # [1, 2, 3, 'a', 'b', 'c']

文字列は1文字ずつ順番に取り出せるため、
extend() を使うと文字ごとに分解されて追加されてしまいます。

おわりに

append()extend() は、追加する対象の違いに応じて適切に使い分ける必要があります。

  • 単一の要素として追加したい場合は → append()
  • 複数の要素を1つずつ追加したい場合は → extend()

それぞれの特性を正しく理解することで、リスト操作における意図しない挙動を避けることができます。

append() と extend() の違いに迷ったとき、本記事が一助になれば幸いです。

Discussion