Pythonのリストメソッドappendとextendの違いは何ですか?

PYTHON3 チュートリアル

Pythonのリスト操作:appendとextendの違い

Pythonでリスト操作を行う際、特にリストに要素を追加する方法として「append」と「extend」の二つのメソッドがよく使用されます。これらのメソッドは似ているようでいて、実際の動作は異なります。このブログ投稿では、これらの違いを明確にし、具体的な使用例を通じて、どのような場面で各メソッドを使うべきかを解説します。

appendメソッドの基本

「append」メソッドはリストの末尾に新しい要素を一つ追加します。このメソッドはリスト内の要素として何でも追加することができ、追加される要素がリストである場合、そのリストを単一の要素として追加します。

my_list = [1, 2, 3]
my_list.append(4)
print(my_list)  # 出力: [1, 2, 3, 4]

# リストを追加
another_list = [5, 6]
my_list.append(another_list)
print(my_list)  # 出力: [1, 2, 3, 4, [5, 6]]

extendメソッドの基本

一方、「extend」メソッドは引数として渡されたイテラブル(リスト、タプル、文字列など)の各要素をリストに追加します。このメソッドはリストをフラットに展開して追加するため、リストをリストに追加する場合、要素が個別に追加されます。

my_list = [1, 2, 3]
another_list = [4, 5]
my_list.extend(another_list)
print(my_list)  # 出力: [1, 2, 3, 4, 5]

# 文字列を追加
my_list.extend("678")
print(my_list)  # 出力: [1, 2, 3, 4, 5, '6', '7', '8']

問題の背景と解決策

例えば、あるプロジェクトで、複数のリストに格納されたデータを一つのリストに統合する必要があるとします。データは数値リストとして提供され、これらを単一のリストに統合し、後の処理で使用する必要があります。

ステップバイステップ解説

この問題を解決するためには、extendメソッドを使用するのが最適です。以下に具体的な手順を示します。

# 最初のリスト
main_list = [1, 2, 3]

# 統合したい他のリスト
list2 = [4, 5]
list3 = [6, 7, 8]

# extendメソッドを使用してリストを統合
main_list.extend(list2)
main_list.extend(list3)

print(main_list)  # 出力: [1, 2, 3, 4, 5, 6, 7, 8]

この方法では、各リストの要素が順にmain_listに追加され、フラットな一つのリストが形成されます。appendを使用した場合、リストのリストが形成されるため、このケースでは適切ではありません。

このように、appendとextendは似て非なる機能を持つため、使用する場面を選んで適切に使い分けることが重要です。

購読
通知
0 Comments
Inline Feedbacks
View all comments