Python
 Computer >> コンピューター >  >> プログラミング >> Python

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() は元のリストを直接変更できるため、大きなデータを扱う際には効率的です。

  1. 【Python】リストから最大値・最小値・2番目に大きい値・2番目に小さい値を求める方法

    この記事では、Pythonを使ってリスト(配列)の中から最大値、最小値、2番目に大きい値(second largest)、2番目に小さい値(second smallest)を一度に見つけるプログラムを解説します。ソートを行わずに1回のループで処理できるのがポイントです。アルゴリズム全体の流れは以下の3ステップです。ステップ1:リストの要素を入力する ステップ2:各要素を取り出し、リスト内の他の数値と順に比較する ステップ3:最大値・最小値・2番目に大きい値・2番目に小さい値を取得して表示するサンプルコード# リスト内の最大値・最小値・2番目に大きい値・2番目に小さい値を求める def maxm

  2. Pythonでリスト内の最大値・最小値の位置を見つける方法

    Pythonでは、リスト内の最大値や最小値を求めるのが非常に簡単で、それらの位置(インデックス)も簡単に取得できます。Pythonには便利な組み込み関数が用意されており、min()はリスト内の最小値を求め、max()はリスト内の最大値を求めます。さらに、index()を使えば特定の要素のインデックス(位置)を調べることができます。 アルゴリズム maxminposition(A, n) /* Aはユーザーが入力したリスト、nはリストのサイズ */ ステップ1:組み込み関数を使って最小要素の位置を求める A.index(min(A)) ステップ2:組み込み関数を使って最