Pythonでリストに要素を追加する方法:append()とextend()の違いを徹底解説
Pythonでリストを扱っていると、末尾に新しい要素を追加したい場面がよくあります。本記事では、リストへの要素追加に使えるappend()メソッドとextend()メソッドの使い方、そして両者の違いについて、具体例を交えながらわかりやすく解説します。
append()メソッドでリストの末尾に要素を追加する
リストの末尾に要素を追加したい場合は、append()メソッドを使用します。このメソッドは、引数に指定した1つの要素をリストの最後に追加し、リストの長さは必ず「1」だけ増加します。
構文
list.append(item)
引数として渡すitemは、リストの末尾に追加される要素です。数値や文字列はもちろん、リストや辞書(dict)など、あらゆるオブジェクトを指定できます。
リストの末尾に要素を追加する例
append()メソッドを使うと、指定した要素がそのままリストの末尾に追加され、リストのサイズが1つ増えます。
コード例
colors=["red","blue","black"]
print("List",colors)
print("Size of list", len(colors))
colors.append("white")
print("Updated list",colors)
print("Size of updated list",len(colors))
実行結果
List ['red', 'blue', 'black'] Size of list 3 Updated list ['red', 'blue', 'black', 'white'] Size of updated list 4
リストの末尾に別のリストを追加する例
append()メソッドは、別のリストを「1つの要素」として末尾に追加することもできます。この場合、元のリストの中にネストされたリストが含まれる点に注意してください。
コード例
colors=["red","blue","black"]
print("List",colors)
fruits=["apple","grapes","mango"]
colors.append(fruits)
print("Updated list",colors)
実行結果
List ['red', 'blue', 'black'] Updated list ['red', 'blue', 'black', ['apple', 'grapes', 'mango']]
extend()メソッドでリストを拡張する
extend()メソッドも要素をリストの末尾に追加しますが、append()とは動作が異なります。extend()は引数に指定したイテラブル(反復可能なオブジェクト)を順番に処理し、その中の各要素を個別にリストへ追加していきます。そのため、リストの長さは「引数の要素数」だけ増加します。
構文
list.extend(iterable)
引数のiterableには、文字列や別のリストなど、反復可能なオブジェクトを指定できます。
文字列でリストを拡張する例
文字列もイテラブルの一種です。そのため、extend()に文字列を渡すと、文字列全体ではなく1文字ずつがリストの末尾に追加されます。リストの長さは、引数の文字列の長さ分だけ増加します。
コード例
colors=["red","blue","black"]
print("List",colors)
print("Size of list", len(colors))
colors.extend("white")
print("Updated list",colors)
print("Size of updated list",len(colors))
実行結果
List ['red', 'blue', 'black'] Size of list 3 Updated list ['red', 'blue', 'black', 'w', 'h', 'i', 't', 'e'] Size of updated list 8
別のリストでリストを拡張する例
リストもイテラブルです。extend()に別のリストを渡すと、そのリスト内のすべての要素が既存のリストの末尾に順番に追加されます。リストのサイズは、引数のリストの要素数分だけ増加します。
コード例
colors=["red","blue","black"]
print("List",colors)
print("Size of list", len(colors))
colors2=["white","pink","orange"]
colors.extend(colors2)
print("Updated list",colors)
print("Size of updated list",len(colors))
実行結果
List ['red', 'blue', 'black'] Size of list 3 Updated list ['red', 'blue', 'black', 'white', 'pink', 'orange'] Size of updated list 6
append()とextend()の違いまとめ
append()とextend()は、似た名前ですが機能がまったく異なります。
append()は引数を1つの要素としてリストに追加します。一方、extend()は引数を反復処理し、各要素を個別にリストの末尾へ追加します。
append()はリストの長さを常に1だけ増やしますが、extend()は引数の要素数だけリストの長さが増加します。
計算量の面では、append()は定数時間 O(1) であるのに対し、extend()は引数の長さをkとすると O(k) の時間計算量となります。
単一の要素を追加したいのか、複数の要素を展開して追加したいのかによって、適切なメソッドを使い分けることが重要です。
-
Pythonでリスト内の要素のインデックスを取得する方法
index()メソッドで最初の出現位置を取得する リスト(文字列やタプルなど、他のシーケンス型でも同様)に用意されている index() メソッドを使うと、特定の要素が最初に出現する位置(インデックス)を簡単に見つけることができます。 >>> L1=[a, b, c, a, x] >>> L1 [a, b, c, a, x] >>> L1.index(a) 0 この例では、リスト L1 の中で a が最初に出現するのはインデックス 0 の位置であるため、0 が返されます。なお、指定した要素がリスト内に存在しない場合は ValueError
-
Pythonでファイルをアルファベット順に一覧表示する方法【os.listdirとsortedの使い方】
Pythonですべてのファイル名をアルファベット順に取得する方法 Pythonでは、os.listdir関数を使うことで、指定したディレクトリ内のファイルやフォルダの一覧を簡単に取得できます。さらに、組み込み関数であるsortedを組み合わせれば、取得したリストをアルファベット順(昇順)にソートすることが可能です。 基本的な手順 まずos.listdirでディレクトリの中身をリストとして取得し、その後sorted関数に渡して並べ替えます。以下が実際のコード例です。 >>> import os >>> list_dir = os.listdir(.) >