Pythonのappend()とextend()の違いをわかりやすく解説
Pythonのリストに要素を追加する際によく使われるメソッドが append() と extend() です。どちらもリストの要素数を増やすために使用しますが、動作は大きく異なります。この記事では、それぞれの特徴と違いを具体例とともに解説します。
append()メソッドとは
append() は、渡された要素をリストの末尾に「1つの要素」として追加します。引数として渡せるのは1つだけです。仮に引数がリストであっても、そのリスト全体が「1つの要素」として元のリストに加わり、要素数は1だけ増えます。
構文: list_name.append('値')
※ 引数は1つのみ
append()の使用例
list = ['Mon', 'Tue', 'Wed']
print("既存のリスト\n", list)
# 要素を1つ追加
list.append('Thu')
print("要素を1つ追加した結果:", list)
# リストを丸ごと追加
list.append(['Fri', 'Sat'])
print("リストを追加した結果:", list)
実行結果
既存のリスト ['Mon', 'Tue', 'Wed'] 要素を1つ追加した結果: ['Mon', 'Tue', 'Wed', 'Thu'] リストを追加した結果: ['Mon', 'Tue', 'Wed', 'Thu', ['Fri', 'Sat']]
出力を見ると、['Fri', 'Sat'] というリストがネスト(入れ子)された状態で末尾に追加されていることがわかります。これが append() の最大の特徴です。
extend()メソッドとは
extend() は、イテラブル(リストや文字列など)の各要素を個別の要素として展開しながらリストへ追加します。リストの新しい長さは、追加された要素の数だけ増加します。こちらも引数は1つですが、渡されたオブジェクトの中身がバラされて追加される点が append() との決定的な違いです。
構文: list_name.extend('値')
※ 引数は1つのみ
extend()の使用例
list = ['Mon', 'Tue', 'Wed']
print("既存のリスト\n", list)
# 文字列でextend
list.extend("Thu")
print("文字列で拡張した結果:", list)
# リストでextend
list.extend(['Fri', 'Sat'])
print("リストで拡張した結果:", list)
実行結果
既存のリスト ['Mon', 'Tue', 'Wed'] 文字列で拡張した結果: ['Mon', 'Tue', 'Wed', 'T', 'h', 'u'] リストで拡張した結果: ['Mon', 'Tue', 'Wed', 'T', 'h', 'u', 'Fri', 'Sat']
注目すべきは、文字列 "Thu" を extend() に渡した場合です。文字列もイテラブルであるため、「T」「h」「u」の3文字が個別の要素として分解されて追加されます。これは意図しない結果になりやすいので注意しましょう。
append()とextend()の違いまとめ
| 項目 | append() | extend() |
|---|---|---|
| 追加方法 | 引数全体を1つの要素として追加 | 引数の各要素を個別に展開して追加 |
| 引数にリストを渡した場合 | リストがネストされる | リストの各要素がフラットに追加される |
| 要素数の増加 | 必ず1増える | 追加した要素の数だけ増える |
使い分けの目安としては、リストに単一のオブジェクト(ネストしたリストを含む)をそのまま加えたい場合は append() を、複数の要素を一括して連結したい場合は extend() を選ぶのが基本です。また、リスト同士を連結する別の方法として + 演算子やスライス代入もありますが、extend() は元のリストを直接変更できるため、大きなデータを扱う際には効率的です。
-
【Python】リストから最大値・最小値・2番目に大きい値・2番目に小さい値を求める方法
この記事では、Pythonを使ってリスト(配列)の中から最大値、最小値、2番目に大きい値(second largest)、2番目に小さい値(second smallest)を一度に見つけるプログラムを解説します。ソートを行わずに1回のループで処理できるのがポイントです。アルゴリズム全体の流れは以下の3ステップです。ステップ1:リストの要素を入力する ステップ2:各要素を取り出し、リスト内の他の数値と順に比較する ステップ3:最大値・最小値・2番目に大きい値・2番目に小さい値を取得して表示するサンプルコード# リスト内の最大値・最小値・2番目に大きい値・2番目に小さい値を求める def maxm
-
Pythonでリスト内の最大値・最小値の位置を見つける方法
Pythonでは、リスト内の最大値や最小値を求めるのが非常に簡単で、それらの位置(インデックス)も簡単に取得できます。Pythonには便利な組み込み関数が用意されており、min()はリスト内の最小値を求め、max()はリスト内の最大値を求めます。さらに、index()を使えば特定の要素のインデックス(位置)を調べることができます。 アルゴリズム maxminposition(A, n) /* Aはユーザーが入力したリスト、nはリストのサイズ */ ステップ1:組み込み関数を使って最小要素の位置を求める A.index(min(A)) ステップ2:組み込み関数を使って最