Python: リストに複数要素をまとめて追加 extendの使い方

Pythonでリストに複数の要素をまとめて追加したい場合、 リストオブジェクトの extend()メソッドを使います。
extend()で引数として指定するのはリストやタプルなどの イテラブルなオブジェクトです。 ここではextend()メソッドの使い方やappend()との違い等を解説します。

extend()の書式とサンプルコード

書式
リスト.extend(イテラブルなオブジェクト)

引数にはリストやタプルなどのイテラブルなオブジェクトを指定します。 指定された要素ををまとめてリストの末尾に追加します。 ディクショナリ(辞書)も指定できます。戻り値はNoneです。

extend()のサンプルコードは次の通りです。

li  = ["a", "b", "c"]

li2 = ["d", "e", "f"]

li.extend(li2)

print(li)  # ['a', 'b', 'c', 'd', 'e', 'f']
print(li2) # ['d', 'e', 'f']

引数にディクショナリを指定する

引数にディクショナリ(辞書)を指定することもできます。 その場合、ディクショナリの「キーのみ」がリストに追加されます。

次のサンプルコードでは、 ディクショナリのキーである「"s", "t", "u"」がリストに追加されています。

li  = ["a", "b", "c"]

d = {"s": 1, "t": 2, "u": 3}

li.extend(d)

print(li)  # ['a', 'b', 'c', 's', 't', 'u']

append()とextend()の違い

リストオブジェクトで似たような追加系のメソッドとしてappend()があります。
どちらもリストの末尾に追加するのは同じです。 違いは指定できる引数です。 append()は1つの値を引数として指定するのに対して、 extend()はイテラブルなオブジェクトを指定します。
結果的にappend()は単一要素の追加、 extend()は複数要素の追加になります。 英単語の「append」は「追加」という意味で、 「extend」は「拡張する・広げる」という意味です。

注意点として、次のような引数指定は出来ません。エラーとなります。

li  = ["a", "b", "c"]

li.append("d", "e") # エラー(複数の値を指定している)

li.extend("d", "e") # エラー(リストやタプルではないのでダメ)

関連記事: リストの末尾に要素を追加する append()の使い方

Python