用語比較
append()とextend()の違い|リストへの追加方法をPython3エンジニア認定基礎試験で判断する
append()とextend()は、どちらもリストの末尾へ追加するメソッドで、append()は渡した値をそのまま1個の要素として足し、extend()はイテラブルの要素を1つずつ展開して足します。
Python 3 エンジニア認定基礎試験では、リストにリストを足す設問で、どちらを使うと想定した形になるかを判断させる問題が出ます。
この記事の目次
この記事の根拠と出典
各セクションの見出しの下に、公式資料で確認した内容か編集部の整理かをラベルで示しています。 試験日・料金・申込条件・試験方式は変わることがあるため、申込前に公式サイトで確認してください。
append()とextend()の要点
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 |
Python3エンジニア認定基礎試験の学習に使う書籍(Amazon)
PRどこで迷っているかを切り分ける
append()とextend()を「要素を足すメソッド」とひとまとめに覚えている初学者
append()は渡した値をそのまま1個の要素として足し、extend()はイテラブルを1つずつ展開して足します。リストにリストを足す場面で結果を比べると、二つの違いが分かりやすくなります。
リストを結合したいのにappend()を使ってしまう人
a.append([3, 4]) は [3, 4] というリストそのものを1個の要素として足すため、結果は入れ子のリストになります。要素を1つずつ展開して結合したい場合はa.extend([3, 4])を使います。
extend()に渡せる値をリストだけだと思っている再受験者
公式チュートリアルはextend()について「イテラブルのすべての要素」と説明しており、リストに限らずタプルや文字列などイテラブル全般を渡せます。渡した値がリストかどうかではなく、イテラブルかどうかで考えます。
問題文から答えを選ぶ手順
- 1
渡す値を1個の要素として足したいか確認する
値そのものを1個の要素として足したい場合はappend()を使います。
- 2
渡す値を展開して複数の要素として足したいか確認する
イテラブルの要素を1つずつ展開して足したい場合はextend()を使います。
- 3
リストにリストを足す設問では結果の形を確認する
入れ子のリスト([1, 2, [3, 4]])になっているか、展開された形([1, 2, 3, 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()にリスト以外のイテラブルも渡せると説明できる
関連ページで確認する
- Python3エンジニア認定基礎試験の概要試験の形式(選択式40問・60分・合格ラインは正答率70%)と章ごとの出題比率、無料の予想問題を確認する。
- list.extend()を個別に確認extend()の定義と、appendとの結果の違いを確認する。
- データ構造の章を読む収録問題の解説で、リストのメソッドの使い分けを確認する。
- 「/」と「//」の違い同じPython 3 エンジニア認定基礎試験の公式チュートリアルから、演算子の戻り値の判断も確認する。
- クラス変数とインスタンス変数の違い同じPython 3 エンジニア認定基礎試験の公式チュートリアルから、値を共有する範囲の判断も確認する。
- Python3エンジニア認定基礎試験問題データ構造の問題を横断して演習する。
同じ資格で次に知りたいこと
- sort()とsorted()の違い|元のリストを変えるか新しいリストを返すかをPython3エンジニア認定基礎試験で判断する
list.sort()とsorted()の違いを、公式ドキュメントの記述、返り値の
None、渡せる対象、reverse引数、Python 3 エンジニア認定基礎試験での判断手順と確認問題まで解説します。 - 位置専用引数とキーワード専用引数の違い|/と*の位置をPython3エンジニア認定基礎試験で判断する
位置専用引数とキーワード専用引数の違いを、公式チュートリアルの/と*の書き方、pos_only_argとkwd_only_argの呼び出し例と
TypeError、使い分けのガイド、Python 3 エンジニア認定基礎試験での判断手順と確認問題まで解説します。 - jsonとpickleの違い|保存できる範囲と安全性をPython3エンジニア認定基礎試験で判断する
jsonとpickleの違いを、公式チュートリアル7.2.2が示す扱えるオブジェクトの範囲、他の言語との通信、信頼できないデータを読み込む危険性、dump()・dumps()・load()の使い分け、Python 3 エンジニア認定基礎試験での判断手順と確認問題まで解説します。
よくある質問
Qappend()とextend()はどちらを使えばいい?
渡した値をそのまま1個の要素として足したいときはappend()、イテラブルの要素を展開して足したいときはextend()を使います。
Qextend()にはリストしか渡せない?
いいえ。公式チュートリアルは「イテラブルのすべての要素」と説明しており、タプルや文字列などイテラブル全般を渡せます。
Qa.append([3, 4])とa.extend([3, 4])は同じ結果になる?
なりません。append()は[1, 2, [3, 4]]という入れ子のリストになり、extend()は[1, 2, 3, 4]という展開された形になります。
Qappend()とextend()の違いはa[len(a):] = ...の代入でどう説明される?
公式チュートリアルは、append()をa[len(a):] = [x]、extend()をa[len(a):] = iterableと同様の操作として説明しています。
次に見る比較
- G検定・DS検定・統計検定2級で重なる用語10語の比較
同じ名前の用語の定義と収録章を、資格ごとに並べます。
- ベイズの定理と条件付き確率の違い(統計検定2級の式と計算例)
求める確率の向きの違いと、陽性になる確率の計算例を確かめます。
- 紛らわしい用語ペア早見表
混同しやすい用語の違いと判定の手掛かりを、資格別の一覧で確かめます。
執筆: AI資格ドリル編集部(運営者情報を見る)
