Pythonでリスト(配列)に普通に要素を追加する方法

242, 2021-05-04

目次

Pythonのリスト(配列)に要素を追加する

Pythonではリスト(配列)に要素を追加することができます。
要素を追加することでリストの内容を変化させ、柔軟なプログラミングを可能にします。

Pythonのリストに要素を追加する代表的な方法は↓の通りです。

  • append()で末尾に追加する

  • extend()でリスト同士を連結する

  • insert()で指定位置に追加する

結論から言うと↓のようなコードになります。

# 追加
lis = [1, 2]
lis.append(3)  # 3という値をlisの末尾に追加する
print(lis)
# [3]

# 挿入
lis = [1, 2]
lis.insert(0, 3)  # lisの0番目の位置に値3を挿入する
print(lis)
# [3, 1, 2]

# 連結
lis1 = [1, 2]
lis2 = [3, 4]
lis1.extend(lis2)  # lis1の末尾にlis2を連結する
print(lis1)
# [1, 2, 3, 4]

この記事ではPythonによるリストへの要素の追加方法を解説します。

リストに要素を追加するということ

リストに要素を追加するというのはどういうことでしょうか?
まずPythonのリストはなんなのかというと、これは配列というデータ構造です。
ちなみに連結リストなどのデータ構造もありますが、Pythonのリストの実装は配列になっているのでご注意ください。

リストなのに配列なんだって

Pythonのリストは配列ですが、この配列は可変長配列になっています。
つまり自由にその大きさを変えられる配列のことを言います。

可変長配列は↓のようなものです。

[1, 2, 3, 4]

↑の1234が配列内の要素です。
左側(1側)が配列の先頭で、右側(4側)が配列の末尾です。
要素とは値で、値は要素です。配列は要素の集まりと見ることができます。
この配列の末尾に5という要素を追加すると↓のようになります。

[1, 2, 3, 4, 5]

配列の末尾に5が追加されました。
配列全体の大きさも追加に合わせて変わっていますが、これが可変長配列の特徴です。
この「追加」に相当する機能がリストのappend()です。

また配列の先頭に5という要素を挿入してみます。

[5, 1, 2, 3, 4]

配列の先頭に5が挿入されました。
この「挿入」に相当する機能がリストのinsert()です。

では次に↓のような別の配列を用意します。

[5, 6, 7]

↑の配列を先ほどの配列の末尾に連結すると↓のようになります。

[1, 2, 3, 4, 5, 6, 7]

連結されました。この「連結」に相当する機能がリストのextend()です。

append()で末尾に追加する

リストの末尾に要素を追加するにはリストのメソッドappend()を使います。

append()は↓のような構造になっています。

list.append(x)

xが要素です。append()は引数を1つ取り、この引数がリストの末尾に追加されます。
↓がサンプルコードです。

lis = [1, 2, 3]

lis.append(4)  # 4という値をlisの末尾に追加する
print(lis)
# [1, 2, 3, 4]

lis.append(5)  # 5という値をlisの末尾に追加する
print(lis)
# [1, 2, 3, 4, 5]

値は整数だけでなく文字列やリストやタプル、辞書や集合などあらゆるオブジェクトを追加することができます。

extend()でリスト同士を連結する

extend()は別のリストをリストに連結するメソッドです。

その構造は↓のようになっています。

list.extend(iterable)

extend()の第1引数(iterable)に連結したいオブジェクトを指定します。
iterableとあるように、第1引数に指定できるオブジェクトはリストに限りません。
タプルや辞書など、for文で回せるオブジェクトは何でも渡すことができます。

extend()は↓のように使います。

lis = [1, 2, 3]

lis.extend([4, 5])
print(lis)
# [1, 2, 3, 4, 5]

lis.extend((6, 7))
print(lis)
# [1, 2, 3, 4, 5, 6, 7]

lis.extend({'a': 1, 'b': 2})
print(lis)
# [1, 2, 3, 4, 5, 6, 7, 'a', 'b']

insert()で指定位置に追加する

リストの指定の位置に要素を挿入するにはリストのメソッドinsert()を追加します。

insert()は↓のような構造になっています。

ist.insert(i, x)

insert()の第1引数(i)には挿入位置を指定します。
第2引数のxは挿入したい要素を指定します。

第1引数の挿入位置はリスト内の添え字です。
たとえば挿入位置が0ならinsert()はリスト内の0番目の位置に要素を挿入します。
挿入位置が1なら1番目の位置に挿入です。
挿入すると後ろにある既存の要素は後ろにずれていきます。

lis = [1, 2, 3]

lis.insert(0, 4)  # lisの0番目の位置に値4を挿入する
print(lis)
# [4, 1, 2, 3]

lis.insert(2, 5)  # lisの2番目の位置に値5を挿入する
print(lis)
# [4, 1, 5, 2, 3]

insert()に渡す要素も整数に限らずあらゆるデータを指定することができます。

おわりに

今回はPythonのリストに要素を追加する方法を解説しました。
リストは便利なデータ構造で使う機会が多いかと思います。

リストなしでは生きられない身体になってしまった

リスト中毒