まくまくPythonノート
リストに要素を追加する/リストを結合する (append, extend, +)
2009-11-26

リストの末尾に要素を追加する (append, extend)

リストの末尾に単一の要素を追加したいときは、append() メソッドを使用します。

>>> arr = [1, 2, 3]
>>> arr.append(4)
>>> arr
[1, 2, 3, 4]

リストの末尾に追加する要素をリストやタプルでまとめて指定したいときは、append() の代わりに extend() メソッドを使用します(append() 使ってしまうと、ひとつのリスト、あるいはタプル要素として追加されてしまいます)。

>>> arr = [1, 2, 3]
>>> arr.extend((4, 5, 6))
>>> arr
[1, 2, 3, 4, 5, 6]

下記のようにしても同様の結果が得られますが、extend() を使ったほうが効率的で、見やすいです。

a = a + b       # 効率が悪い
a[len(a):] = b  # 見にくい

リストを結合して新しいリストを作成する (+)

list.append()list.extend() を使用すると、元のリスト自体が変更されますが、+ 演算子を使用して2つのリストを結合すると、元のリストは変更せずに新しいリストを作成することができます。

>>> a = [1, 2, 3]
>>> b = [4, 5, 6]
>>> c = a + b
>>> c
[1, 2, 3, 4, 5, 6]

タプル同士を結合した結果はタプルになります。

>>> a = (1, 2, 3)
>>> b = (4, 5, 6)
>>> c = a + b
>>> c
(1, 2, 3, 4, 5, 6)

単一の要素を + 演算子で結合することはできませんが、単一の要素を含むリストやタプルを結合することはできます。 特に、単一の要素を含むタプルを表現するときは、末尾にカンマ (,) をつけてタプルであることを明示しなければいけないことに注意してください。

[1, 2, 3] + 4     #=> TypeError
[1, 2, 3] + [4]   #=> [1, 2, 3, 4]
(1, 2, 3) + 4     #=> TypeError
(1, 2, 3) + (4)   #=> TypeError(上記と同じとみなされるため)
(1, 2, 3) + (4,)  #=> (1, 2, 3, 4)

リストとタプルを結合することはできません。

[1, 2] + (3, 4)   #=> TypeError
2009-11-26