Python: リストの途中に要素を挿入する insert()の使い方
Pythonでリストの途中に新たな要素を挿入する場合、 リストオブジェクトのinsert()メソッドを使用します。 ここではinsert()メソッドの使い方を紹介します。
insert()の書式とサンプルコード
書式
リスト.insert(インデックス, 値)
第1引数にインデックスを指定し、第2引数に挿入する「値」を指定します。 insert()の戻り値はNoneです。
insertでは指定したインデックスの要素の直前に挿入されます。
先頭要素として挿入したい場合はインデックスに「0」を指定し、
2番目の要素として挿入したい場合はインデックスに「1」を指定します。
要素数以上のインデックスを指定した場合は末尾に追加されます。
li = ["a", "b", "c"] # 2番目に挿入 li.insert(1, "x") print(li) # ['a', 'x', 'b', 'c'] # 4番目に挿入 li.insert(3, "y") print(li) # ['a', 'x', 'b', 'y', 'c'] # 要素数以上のインデックスを指定 li.insert(10, "z") print(li) # ['a', 'x', 'b', 'y', 'c', 'z']
insert()の戻り値は?
insert()メソッドの戻り値は「None」です。 Noneなので戻り値を取得しても特に意味はありません。 通常は戻り値を受け取らずに 「リスト.insert(インデックス, 値)」と記述します。
試しにinsertの戻り値を取得してみます。
li = ["a", "b", "c"] re = li.insert(1, "x") print(li) # ['a', 'x', 'b', 'c'] print(re) # None
insert()で複数の値を挿入できる?
insert()で挿入できるのは「1つの値」です。
複数の値をまとめて追加することはできません。
「insert(1, "x", "y")」のように 第2引数以降にカンマ区切りでさらに値を指定するとエラーが発生します。
li = ["a", "b", "c"] li.insert(1, "x", "y") # エラー # 実行結果 エラーメッセージ TypeError: insert expected 2 arguments, got 3
リストの末尾に追加する場合
リストの末尾に要素を追加する場合、
一般的にはappend()を使いますが
insert()でも可能です。
append()のコード例は次の通りです。
li = ["a", "b", "c"] li.append("d") print(li) # ['a', 'b', 'c', 'd']
上のコードをinsert()を使って書くと次のようになります。 インデックスを指定する部分にlen()関数を使って「len(リスト)」を指定します。
li = ["a", "b", "c"] li.insert(len(li),"d") print(li) # ['a', 'b', 'c', 'd']