要素の削除(del文, popメソッド, removeメソッド)

広告

リストオブジェクトの中の任意の要素を削除することが可能です。要素を削除するには「del」文を使用します。

del オブジェクト

「del」文は引数に指定したオブジェクトを削除するための文です。「del」文の引数には削除するオブジェクトを指定しますが、リストオブジェクト[インデックス]の形式で取得したリストオブジェクトの要素を指定します。

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

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

del list[1]
print list     # ["A", "C"]

上記ではインデックス1の要素をリストから削除しています。

またスライスを使って部分リストを引数に指定することも出来ます。

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

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

指定のインデックスの要素を削除する

リスト型で用意されている「pop」メソッドを使うことで、指定のインデックスの要素を削除することが出来ます。

リストオブジェクト.pop(インデックス)

指定のインデックスの要素を削除し、その要素を返します。インデックスが省略された場合はリストの末尾の要素が削除されます。

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

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

list.pop(1)
print list     # ["A", "C", "D"]

list.pop()
print list     # ["A", "C"]

指定の値を持つ要素を削除する

リスト型で用意されている「remove」メソッドを使うことで、指定の値を持つオブジェクトが代入されている要素を削除することが出来ます。

リストオブジェクト.remove(オブジェクト)

オブジェクトそのものが同一ではなく、オブジェクトが持つ値が同じものを削除します。またリストに同じ値のオブジェクトを持つ要素が複数存在した場合には、最初の要素を削除します。

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

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

list.remove("B")
print list     # ["A", "C", "B", "D"]

上記では文字列オブジェクトの「B」と同じ値を持つインデックス1の要素をリストから削除しています。

サンプルコード

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

#coding: UTF-8

list = ["A", "B", "C", "D", "E", "F"]
print list

print "del list[1]"
del list[1]
print list

print "pop(1)"
list.pop(1)
print list

print "pop()"
list.pop()
print list

print 'list.remove("A")'
list.remove("A")
print list

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

要素の削除(del文, popメソッド, removeメソッド)

( Written by Tatsuo Ikura )

関連記事 (一部広告含む)