🔖
【初心者向け】Pythonの append() と extend() の違いを解説
はじめに
Pythonでリストを扱っていると、要素を追加したい場面がよくあります。
その際、頻繁に使われるのが append()
と extend()
です。
しかし、初心者の方は次のように戸惑うことも多いのではないでしょうか?
「どちらのメソッドを使って要素を追加すればいいのか?」
「結果が思った通りにならない」
私自身も最初は混乱しました。
しかし実は、「何を追加したいのか」によって、使い分けのルールがはっきり決まっています。
本記事では append()
と extend()
の違いを、実例とともに整理します。
append()
:そのまま「1つの要素」として追加する
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つの要素」として追加されていることがわかります。
extend()
:リストの要素を1つずつ追加する
2. 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