AI資格ドリル
資格を選ぶ↓

用語比較

append()とextend()の違い|リストへの追加方法をPython3エンジニア認定基礎試験で判断する

append()とextend()は、どちらもリストへ要素を追加するメソッドです。公式チュートリアルはappend()について「リストの末尾に要素を一つ追加します」、extend()について「イテラブルのすべての要素を対象のリストに追加し、リストを拡張します」と説明しています。渡した値をそのまま1個の要素として足すか、要素を1つずつ展開して足すかが違います。

Python 3 エンジニア認定基礎試験では、リストにリストを足す設問で、append()とextend()のどちらを使うと想定した形になるかを判断させる問題が出ます。a = [1, 2] に対して a.append([3, 4]) を実行すると [1, 2, [3, 4]] になり、a.extend([3, 4]) を実行すると [1, 2, 3, 4] になります。

このページは、append()とextend()を「リストに要素を足すメソッド」とひとまとめに覚えている人を対象にしています。渡した値がそのまま1個の要素になるか、展開されて複数の要素になるかで判断します。

この記事の根拠と出典

本文の主要なセクションでは、公式一次資料と照合した内容と編集部の整理を、見出しの下のラベルで区別しています。 試験日、料金、申込条件、試験方式など変動する情報は、公式情報を最終確認してください。 当サイトの一次情報確認日: 2026-09-18。

結論

append()

リストの末尾に要素を一つ追加するメソッド。渡した値そのものが1個の要素になる。

extend()

イテラブルのすべての要素を対象のリストに追加し、リストを拡張するメソッド。渡した値は1つずつ展開される。

違いを表で確認

比較軸append()extend()
公式チュートリアルの説明「リストの末尾に要素を一つ追加します」「イテラブルのすべての要素を対象のリストに追加し、リストを拡張します」
渡した値の扱いそのまま1個の要素になる1つずつ展開されて複数の要素になる
a = [1, 2]にa.append([3, 4])/a.extend([3, 4])を実行した結果[1, 2, [3, 4]][1, 2, 3, 4]
同様の代入と等しい式a[len(a):] = [x]a[len(a):] = iterable

どこで迷っているかを切り分ける

01

append()とextend()を「要素を足すメソッド」とひとまとめに覚えている初学者

append()は渡した値をそのまま1個の要素として足し、extend()はイテラブルを1つずつ展開して足します。リストにリストを足す場面で結果を比べると、二つの違いが分かりやすくなります。

02

リストを結合したいのにappend()を使ってしまう人

a.append([3, 4]) は [3, 4] というリストそのものを1個の要素として足すため、結果は入れ子のリストになります。要素を1つずつ展開して結合したい場合はa.extend([3, 4])を使います。

03

extend()に渡せる値をリストだけだと思っている再受験者

公式チュートリアルはextend()について「イテラブルのすべての要素」と説明しており、リストに限らずタプルや文字列などイテラブル全般を渡せます。渡した値がリストかどうかではなく、イテラブルかどうかで考えます。

問題文から答えを選ぶ手順

  1. 1

    渡す値を1個の要素として足したいか確認する

    値そのものを1個の要素として足したい場合はappend()を使います。

  2. 2

    渡す値を展開して複数の要素として足したいか確認する

    イテラブルの要素を1つずつ展開して足したい場合はextend()を使います。

  3. 3

    リストにリストを足す設問では結果の形を確認する

    入れ子のリスト([1, 2, [3, 4]])になっているか、展開された形([1, 2, 3, 4])になっているかで、使われたメソッドを判断します。

  4. 4

    a[len(a):] = ... の代入と対応させる

    append()はa[len(a):] = [x]、extend()はa[len(a):] = iterableと同様の操作だと公式チュートリアルは説明しています。

試験での見分け方

  • 1append()は渡した値をそのまま1個の要素として末尾に足す。
  • 2extend()はイテラブルのすべての要素を1つずつ展開して末尾に足す。
  • 3リストにリストを足すと、append()は入れ子のリストに、extend()は展開された1つのリストになる。
  • 4extend()に渡せるのはリストに限らずイテラブル全般。

誤答しやすい選択肢

append()とextend()を同じ結果になるメソッドとして扱う

修正: append()は渡した値を1個の要素として足し、extend()は要素を1つずつ展開して足すという別の結果になります。

リストを結合したいのにappend()を使い入れ子のリストを作ってしまう

修正: リストを展開して結合したい場合はextend()を使います。append()を使うと渡したリストがそのまま1個の要素になります。

extend()にはリストしか渡せないと考える

修正: extend()にはタプルや文字列などイテラブル全般を渡せます。渡した値がリストかどうかは条件ではありません。

確認問題

Q1a = [1, 2] に a.append([3, 4]) を実行した結果はどれ?

答え: [1, 2, [3, 4]]

append()は渡した値をそのまま1個の要素として末尾に足すため、[3, 4]というリストそのものが1個の要素になります。

Q2a = [1, 2] に a.extend([3, 4]) を実行した結果はどれ?

答え: [1, 2, 3, 4]

extend()はイテラブルのすべての要素を1つずつ展開して足すため、3と4がそれぞれ別の要素として追加されます。

Q3リストを展開して結合したいときに使うメソッドはどちら?

答え: extend()

append()は渡した値を1個の要素として足すため入れ子になります。展開して結合したい場合はextend()を使います。

到達チェック

  • append()が渡した値を1個の要素として足すメソッドだと説明できる
  • extend()がイテラブルの要素を1つずつ展開して足すメソッドだと説明できる
  • リストにリストを足したときの結果の違いを挙げられる
  • extend()にリスト以外のイテラブルも渡せると説明できる

よくある質問

Qappend()とextend()はどちらを使えばいい?

A

渡した値をそのまま1個の要素として足したいときはappend()、イテラブルの要素を展開して足したいときはextend()を使います。

Qextend()にはリストしか渡せない?

A

いいえ。公式チュートリアルは「イテラブルのすべての要素」と説明しており、タプルや文字列などイテラブル全般を渡せます。

Qa.append([3, 4])とa.extend([3, 4])は同じ結果になる?

A

なりません。append()は[1, 2, [3, 4]]という入れ子のリストになり、extend()は[1, 2, 3, 4]という展開された形になります。

Qappend()とextend()の違いはa[len(a):] = ...の代入でどう説明される?

A

公式チュートリアルは、append()をa[len(a):] = [x]、extend()をa[len(a):] = iterableと同様の操作として説明しています。

執筆: ミナト編集部(運営者情報を見る)