【Python】insert()で指定した位置に要素を追加する!

Pythonのinsert()を使用すると、リストの指定した位置に要素を追加することができます。

insert()とは指定した位置に要素を追加するメソッドであり、リストの指定した位置に要素を追加することができます。

そして、insert()のパラメータであるインデックスが正の整数である場合はリストの左側から、負の整数である場合はリストの右側から要素を追加されるようになります。

また、insert()は1次元だけでなく、多次元のリストでも指定位置に要素を追加することができます。

今回はPythonのinsert()で指定位置に要素を追加する方法について以下の内容で解説していきます。

⚫︎ 指定位置が要素の数より小さい場合
⚫︎ 指定位置が要素の数と同じかより大きい場合
⚫︎ 指定位置が負の整数である場合

⚫︎ 2次元の指定した位置に要素を追加する場合
⚫︎ 3次元の指定した位置に要素を追加する場合

insert()とは

insert()とは、指定した位置に要素を挿入することができるメソッドであり、リスト(List)のみに使用することができます。

insert()の書き方

insert()の書き方は下記となります。

insert()のパラメータ

⚫︎ インデックス:
追加したい要素の位置をインデックスで指定する
(0からスタートし、int型で指定)
⚫︎ 要素:
追加したい要素を指定する

insert()のパラメータであるインデックスと要素を指定することで、指定したインデックスに要素を追加することができます。

また、パラメータはリストやタプルをそのまま指定するのではなく、iter()で一度イテレータ化する必要があります。

リスト(List)の指定した位置に要素を追加するサンプルコード

指定した位置に要素を追加するサンプルコードを紹介します。

指定した位置が要素の数より小さい場合

指定した位置が要素の数と同じか小さい場合は、指定したリストの位置に要素を追加することができます。



出力結果

[‘value1’, ‘value2’, ‘value3’, ‘value4’, ‘value5’]

・指定した位置が要素の数より小さい場合
[‘value1’, ‘value2’, ‘value3’, ‘value100’, ‘value4’, ‘value5’]

insert()によってリストの指定した位置に要素を追加しています。

指定位置が要素の数と同じかより大きい場合

指定位置が要素の数と同じかより大きい場合は、リストの一番後ろに要素が追加されるようになります。



出力結果

[‘value1’, ‘value2’, ‘value3’, ‘value4’, ‘value5’]

・指定位置が要素の数と同じかより大きい場合
[‘value1’, ‘value2’, ‘value3’, ‘value4’, ‘value5’, ‘value100’]

insert()のパラメータには「8(9番目)」を指定しており、要素の数は5つしかありませんが一番後ろに要素が追加されています。

指定位置が負の整数である場合

指定位置が負の整数である場合は、リストの右端から数えたインデックスの位置に要素が追加されるようになります。



出力結果

[‘value1’, ‘value2’, ‘value3’, ‘value4’, ‘value5’]

・指定位置が負の整数である場合
[‘value1’, ‘value2’, ‘value100’, ‘value3’, ‘value4’, ‘value5’]

insert()のパラメータには「-3(右から4番目)」を指定していますので、左から3番目に要素が追加されています。

多次元のリスト(List)の指定位置に要素を追加するサンプルコード

多次元のリスト(List)の指定位置に要素を追加するサンプルコードをで紹介します。

2次元リスト(List)の場合

2次元リスト(List)の指定位置に要素を追加してみます。

出力結果

[[‘value1’, ‘value2’, ‘value3’, ‘value4’, ‘value5’], [‘value6’, ‘value7’, ‘value8’, ‘value9’, ‘value10’]]

・2次元リストで指定した位置に要素を追加する場合
[‘value100’, [‘value1’, ‘value2’, ‘value3’, ‘value4’, ‘value5’], [‘value6’, ‘value7’, ‘value8’, ‘value9’, ‘value10’]]

・2次元リスト内の1次元リストで指定した位置に要素を追加する場合
[‘value100’, [‘value1’, ‘value2’, ‘value3’, ‘value4’, ‘value1000’, ‘value5’], [‘value6’, ‘value7’, ‘value8’, ‘value9’, ‘value10’]]
[‘value100’, [‘value1’, ‘value2’, ‘value3’, ‘value4’, ‘value1000’, ‘value5’], [‘value6’, ‘value7’, ‘value8’, ‘value9’, ‘value10’, ‘value10000’]]

リストの後ろにインデックスを指定しinsert()を使用することで、2次元リストの指定位置に要素を追加しています。

3次元リスト(List)の場合

3次元リスト(List)の指定位置に要素を追加してみます。

出力結果

[[[‘値1’, ‘値2’, ‘値3’, ‘値4’, ‘値5’], [‘値6’, ‘値7’, ‘値8’, ‘値9’, ‘値10’]], [[‘値11’, ‘値12’, ‘値13’, ‘値14’, ‘値15’], [‘値16’, ‘値17’, ‘値18’, ‘値19’, ‘値20’]]]

・3次元リストで指定した位置に要素を追加する場合
[‘値A’, [[‘値1’, ‘値2’, ‘値3’, ‘値4’, ‘値5’], [‘値6’, ‘値7’, ‘値8’, ‘値9’, ‘値10’]], [[‘値11’, ‘値12’, ‘値13’, ‘値14’, ‘値15’], [‘値16’, ‘値17’, ‘値18’, ‘値19’, ‘値20’]]]

・3次元リスト内の2次元リストで指定した位置に要素を追加する場合
[‘値A’, [[‘値1’, ‘値2’, ‘値3’, ‘値4’, ‘値5’], [‘値6’, ‘値7’, ‘値8’, ‘値9’, ‘値10’], ‘値B’], [[‘値11’, ‘値12’, ‘値13’, ‘値14’, ‘値15’], [‘値16’, ‘値17’, ‘値18’, ‘値19’, ‘値20’]]]
[‘値A’, [[‘値1’, ‘値2’, ‘値3’, ‘値4’, ‘値5’], [‘値6’, ‘値7’, ‘値8’, ‘値9’, ‘値10’], ‘値B’], [[‘値11’, ‘値12’, ‘値13’, ‘値14’, ‘値15’], [‘値16’, ‘値17’, ‘値18’, ‘値19’, ‘値20’], ‘値C’]]

・3次元リスト内の1次元リストで指定した位置に要素を追加する場合
[‘値A’, [[‘値1’, ‘値2’, ‘値3’, ‘値4’, ‘値5’], [‘値6’, ‘値7’, ‘値D’, ‘値8’, ‘値9’, ‘値10’], ‘値B’], [[‘値11’, ‘値12’, ‘値13’, ‘値14’, ‘値15’], [‘値16’, ‘値17’, ‘値18’, ‘値19’, ‘値20’], ‘値C’]]
[‘値A’, [[‘値1’, ‘値2’, ‘値3’, ‘値4’, ‘値5’], [‘値6’, ‘値7’, ‘値D’, ‘値8’, ‘値9’, ‘値10’], ‘値B’], [[‘値11’, ‘値12’, ‘値13’, ‘値14’, ‘値15’], [‘値16’, ‘値17’, ‘値E’, ‘値18’, ‘値19’, ‘値20’], ‘値C’]]

リストの後ろにインデックスを指定しinsert()を使用することで、3次元リストの指定位置に要素を追加しています。

リスト(List)の複数の指定位置に要素を追加する場合

リスト(List)の複数の指定位置に要素を追加するには繰り返し処理を使用します。

出力結果

[‘value1’, ‘value2’, ‘value3’, ‘value4’, ‘value5’]

・複数の指定位置に要素を追加
[‘value1’, ‘value2’, ‘value100’, ‘value3’, ‘value100’, ‘value4’, ‘value5’]

リストの3番目と5番目に要素を追加しています。

今回のポイント

insert()で指定位置に要素を追加

Pythonでリストの指定位置に要素を追加にはinsert()を使用する。

⚫︎ insert()のパラメータのインデックスに要素の数よち小さい数を指定すると指定した位置に要素が追加される

⚫︎ insert()のパラメータのインデックスに要素の数と同じか大さい数を指定するとリストの一番右端に要素が追加される

⚫︎ insert()のパラメータのインデックスに負の整数を指定すると、リストの右端から数えたインデックスの位置に要素が追加される

⚫︎ insert()は多次元のリストでも指定位置に要素を追加することができる

Writer

ST

株式会社flyhawkのSTです。フライテックメディア事業部でのメディア運営・ライター業務なども担当。愛機はMac Book AirとThinkPad。好きな言語:swift、JS系(Node.js等)。好きなサーバー:AWS。受託開発やプログラミングスクールの運営をしております。ご気軽にお問い合わせください。

最新の案件情報