スライスを使った要素の追加/挿入/削除

広告

リストに対してスライスを指定し任意の部分リストを取得することで、要素の追加や削除を行うことが出来ます。

要素をリストの末尾に追加するには次のように行います。

リストオブジェクト[len(リストオブジェクト):] = オブジェクト

スライスを指定して取得した部分リストに対してオブジェクトを追加することは、その部分リストをオブジェクトで置き換えることになります。リストオブジェクト[len(リストオブジェクト):]はリストの最後の文字の次からリストの末尾までの部分リストとなります(つまり現在何も要素が存在しない部分リストとなります)。指定したオブジェクトで置き換えることによって、結果的に末尾にオブジェクトを追加することになります。

同じように他のリストに含まれる全ての要素を追加するには次のように行います。

リストオブジェクト[len(リストオブジェクト):] = リストオブジェクト

具体的には次のように記述します。

list = ["A", "B", "C"]

list[len(list):] = "D"
print list     # ["A", "B", "C", "D"]

list[len(list):] = ["E", "F"]
print list     # ["A", "B", "C", "D", "E", "F"]

任意の位置に要素を挿入するには次のように記述します。

リストオブジェクト[インデックス:インデックス] = リストオブジェクト

例えばリストオブジェクト[1:1]に対してオブジェクトやリストオブジェクトを代入すると、インデックス1の文字の前の位置に指定したオブジェクトやリストオブジェクトに含まれる全ての要素を追加します。

具体的には次のように記述します。

list = ["A", "B", "C"]

list[1:1] = "a"
print list     # ["A", "a", "B", "C"]

最後に要素を削除するには次のように記述します。

リストオブジェクト[インデックス1:インデックス2] = []

指定したスライスで取得した部分リストに対して空リストを表す[]を代入することで、部分文字列を空のリストに置き換えます。結果的にスライスを指定して取得した部分リストが削除されることになります。

具体的には次のように記述します。

list = ["A", "B", "C", "D"]

list[1:3] = []
print list     # ["A", "D"]

このようにスライスを使って指定した部分リストを操作することで、要素の追加や削除を行う事ができます。

サンプルコード

では実際に試してみます。

#coding: UTF-8

list = ["A", "B", "C"]
print list

print 'list[len(list):] = "D"'
list[len(list):] = "D"
print list

print 'list[len(list):] = ["E", "F"]'
list[len(list):] = ["E", "F"]
print list

print 'list[1:1] = "a"'
list[1:1] = "a"
print list

print 'list[1:4] = []'
list[1:4] = []
print list

上記を「test9-1.py」として保存します。保存する時の文字コードはUTF-8です。そして次のように実行して下さい。

スライスを使った要素の追加/挿入/削除

( Written by Tatsuo Ikura )