Pythonでlistに新たな要素やlistを追加する

この記事では、listに何かを追加する方法を説明します。

append

appendはlistの末尾に要素を追加します。

listオブジェクトにappendで、そのlistオブジェクトそのものに追加されます。
元のlistオブジェクトを変更したくない場合は、+演算子で同じことができます。

l = [1, 2, 3]
rt = l.append(4)

print(l)
print(rt)

# [1, 2, 3, 4]
# None
# 戻り値は無い。

l = [1, 2, 3]
l_n = l + [4]

print(l)
print(l_n)

# [1, 2, 3]
# [1, 2, 3, 4]
# +演算子を使えば、新たなlistオブジェクトを作れる。

l = [1, 2, 3]
l[len(l):] = [4]

print(l)

# [1, 2, 3, 4]
# スライスでも同じことが可能。

listをappendすると、こうなります。

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

print(l)

# [1, 2, 3, [4]]
# listをappendするとこうなる。

extend

extendはlistを拡張します。

listオブジェクトにextendで、そのlistオブジェクトそのものが拡張されます。
元のlistオブジェクトを変更したくない場合は、+演算子で同じことができます。

l = [1, 2, 3]
l_a = [4, 5]
rt = l.extend(l_a)
print(l)
print(rt)

# [1, 2, 3, 4, 5]
# None
# 戻り値は無い。

l = [1, 2, 3]
l_n = l + [4, 5]
print(l)
print(l_n)
# +演算子を使えば、新たなlistオブジェクトを作れる。

# [1, 2, 3]
# [1, 2, 3, 4, 5]
#

l = [1, 2, 3]
l_a = [4, 5]
l[len(l):] = l_a
print(l)

# [1, 2, 3, 4, 5]
# スライスでも同じことが可能。

insert

insert(i, x)は、指定した位置に要素を挿入します。
第 1 引数iは、リストのインデックスです。

l = [1, 2, 3]
l.insert(0, 10)
print(l)

# [10, 1, 2, 3]
# 先頭に挿入する場合は、i=0を指定する。

l = [1, 2, 3]
l.insert(1, 10)
print(l)

# [1, 10, 2, 3]


l = [1, 2, 3]
l.insert(len(l), 10)
print(l)

# [1, 2, 3, 10]
# 末尾に挿入する場合は、i=リストの要素数を指定する。


l = [1, 2, 3]
l.insert(-1, 10)
print(l)

# [1, 2, 10, 3]
# 挿入する位置はマイナスも設定可能。

l = [1, 2, 3]
l.insert(-2, 10)
print(l)

# [1, 10, 2, 3]

listをinsertすると、そのままリストが挿入されます。
リストをネストしたいこともあるので、その場合に使えます。

l = [1, 2, 3]
l.insert(1, [10, 20])
print(l)

# [1, [10, 20], 2, 3]

print(json.dumps(l, indent=4))

# [
#     1,
#     [
#         10,
#         20
#     ],
#     2,
#     3
# ]

最後に補足で、listオブジェクトの関数のサイトを載せておきます。