言語バージョン 3.9.0

公開日 2020年11月21日 JST

更新日 2020年12月25日 JST

コード例の出力としてprint関数を使用しています。

使用方法がわからない場合は以下のページを参照してからコード例を確認してください。

print関数の使用方法

insert(リスト、配列)

このページでは豊富な例を用いてPythonの listクラス のinsertの使い方を学ぶことができます。

insertは listクラス のメソッドの1つです。list型のオブジェクトに対して要素を追加することができます。
同じクラスのappendメソッドが listの末尾にしか要素を追加できないのに対し、insertは任意の位置に要素を追加することが可能です。

TL;DR

基本

# インデックスが1の位置に要素を追加する
list1 = ['Python', 'Java', 'Kotlin', 'Scala']
list1.insert(1, 'JavaScript')
print(list1)
==> ['Python', 'JavaScript', 'Java', 'Kotlin', 'Scala']




# 末尾に要素を追加
list2 = ['py', 'js', 'go', 'ts']
list2.insert(len(list2), 'html')
print(list2)
==> ['py', 'js', 'go', 'ts', 'html']




# appendでは追加位置は常に末尾
list3 = ['py', 'js', 'go', 'ts']
list3.append('html')
print(list3)
==> ['py', 'js', 'go', 'ts', 'html']




# 先頭に要素を追加
list4 = ['peach', 'kiwi', 'grape', 'apple']
list4.insert(0, 'banana')
print(list4)
==> ['banana', 'peach', 'kiwi', 'grape', 'apple']




# forとinsertを使用した例
list6 = ['January', 'May', 'June']
list7 = ['February', 'March', 'April']
for i, v in enumerate(list7):
    list6.insert(i + 1, v)
print(list6)
==> ['January', 'February', 'March', 'April', 'May', 'June']




# 第1引数にマイナスの整数を指定するとlistの末尾からのインデックス位置となる
list8 = [100, 200, 300]
list8.insert(-1, True)
print(list8)
==> [100, 200, True, 300]




# 第1引数の絶対値がlistの長さ以上の場合
# マイナスであれば先頭、プラスであれば末尾に要素が追加される
list9 = [100, 200, 300]
list9.insert(-len(list9), 'First')
list9.insert(len(list9), 'Last')
print(list9)
==> ['First', 100, 200, 300, 'Last']

関連情報:forの使用方法

関連情報:appendメソッド(listクラス)の使用方法

その他の方法(スライス操作)

# スライス操作を用いた表現
# インデックスが3の位置に要素を追加する
list1 = [1, 2, 3, 4, 5]
# インデックス位置をスライス操作で指定
list1[3:3] = ['NEW']
print(list1)
==> [1, 2, 3, 'NEW', 4, 5]

解説

基本

listクラスのメソッドであるinsertを使用すると、listの任意の位置に値を追加することができます。

第1引数に要素を追加したい位置のインデックス番号を指定し、第2引数に追加したい要素を指定します。 第1引数に負(マイナス)の値を指定すると、listの末尾から数えたインデックス位置に値を追加します。

指定したインデックスの絶対値がメソッドを呼び出すlistの長さ以上の場合、マイナスであれば先頭、プラスであれば末尾に要素が追加されることに注意してください。

# インデックスが2の位置に要素を追加
list1 = [0, 1, 2, 3]
list1.insert(2, 999)
print(list1)
==> [0, 1, 999, 2, 3]




# 先頭に追加
list2 = [False, False]
list2.insert(0, True)
print(list2)
==> [True, False, False]




# 末尾に追加
list3 = ['first', 'second']
list3.insert(len(list3), 'third')
print(list3)
==> ['first', 'second', 'third']




# appendの場合
list4 = ['first', 'second']
list4.append('third')
print(list4)
==> ['first', 'second', 'third']




# 引数がマイナスの場合
list5 = [1, 2, 3, 4, 5]
list5.insert(-2, 999)
print(list5)
==> [1, 2, 3, 999, 4, 5]

関連情報:appendメソッド(listクラス)の使用方法

その他の方法(スライス操作)

insertを用いたlistの操作は、スライス操作によっても実現することが可能です。

# スライス操作を用いた任意の位置への追加
list1 = ['kiwi', 'peach', 'banana', 'apple']
list1[1:1] = [12345]
print(list1)
==> ['kiwi', 12345, 'peach', 'banana', 'apple']

1次情報

リスト型についてもう少し - Pythonドキュメント

ミュータブルなシーケンス型 - Pythonドキュメント