リストから要素を削除する

作成済みのリストから指定した位置にある要素を削除したり、指定した値と同じ値を持つ要素を削除する方法について解説します。要素の削除には del 文や pop メソッドや remove メソッドを使用します。またすべての要素を削除するには clear メソッドを使用します。

(Last modified: )

del文を使って要素を削除する

del 文はインデックスを指定して取り出したリストの要素を削除します。次のように実行します。

del リスト[インデックス]
del リスト[開始インデックス:終了インデックス]

インデックスを使って指定したリストの要素を、 del 文を使って削除しています。スライスを使って指定した範囲の要素をまとめて削除することもできます。

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

mylist = ["A", "B", "C", "D", "E"]
del mylist[1]

print(mylist)
>> ["A", "C", "D", "E"]

del mylist[1:3]

print(mylist)
>> ["A", "E"]
サンプルコード

次のサンプルを見てください。

fruitslist = ["Orange", "Lemon", "Peach", "Grapes", "Apple"]

# "Peach" を削除
del fruitslist[2]
print(fruitslist)
>> ['Orange', 'Lemon', 'Grapes', 'Apple']

# "Lemon" から "Grapes" まで削除
del fruitslist[1:3]
print(fruitslist)
>> ['Orange', 'Apple']

del 文を使ってリストの要素を削除することができました。

スライス機能を使って要素を削除する

リストではスライス機能の開始インデックスと終了インデックスを指定してリストの指定した範囲の要素を別の要素と入れ替えることができますが、入れ替える要素として空の要素を指定すると指定した範囲の要素を削除することができます。

リスト[開始インデックス:終了インデックス] = []

スライスを使って指定した範囲の要素を削除します。

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

mylist = ["A", "B", "C", "D", "E"]
mylist[2:4] = []

print(mylist)
>> ["A", "B", "E"]
サンプルコード

次のサンプルを見て下さい。

numlist = ["One", "Two", "Three", "Four", "Five"]

# "Three" を削除
numlist[2:3] = []
print(numlist)
>> ['One', 'Two', 'Four', 'Five']

# "Two" から "Four" まで削除
numlist[1:3] = []
print(numlist)
>> ['One', 'Five']

スライス機能を使ってリストの最後に別のリストの要素を追加することができました。

インデックスで指定した要素を削除する

リストからインデックスで指定した要素を削除する方法です。リスト型で利用可能な pop メソッドを使用します。

リスト.pop()
リスト.pop(インデックス)

pop メソッドは引数に指定したインデックスの要素を取得した上でリストから削除します。インデックスが省略された場合にはリストの最後の要素が削除されます。

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

mylist = ["A", "B", "C", "D", "E"]
mylist.pop()

print(mylist)
>> ["A", "B", "C", "D"]

mylist.pop(1)

print(mylist)
>> ["A", "C", "D"]
サンプルコード

次のサンプルを見てください。

fruitslist = ["Orange", "Lemon", "Peach", "Grapes", "Apple"]

# 最後の要素を取得して削除
print("Delete: " + fruitslist.pop())
>> Delete: Apple
print(fruitslist)
>> ['Orange', 'Lemon', 'Peach', 'Grapes']

# 最後の要素を取得して削除
print("Delete: " + fruitslist.pop())
>> Delete: Grapes
print(fruitslist)
>> ['Orange', 'Lemon', 'Peach']

# "Lemon" を取得して削除
print("Delete: " + fruitslist.pop(1))
>> Delete: Lemon
print(fruitslist)
>> ['Orange', 'Peach']

インデックスを使って指定した要素を取得した上で削除することができました。

指定した値と同じ値を持つ要素を削除する

指定した値と同じ値を持つ要素をリストから削除する方法です。リスト型で利用可能な remove メソッドを使用します。

リスト.remove(値)

引数に指定した値と同じ値を持つ要素(オブジェクトは異なって構いません)を削除します。リストの複数の要素で一致する場合には最初に一致した要素を削除します。

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

mylist = ["A", "B", "C", "D", "E"]
mylist.remove("C")

print(mylist)
>> ["A", "B",  "D", "E"]

mylist.remove("B")

print(mylist)
>> ["A", "D", "E"]

なお remove メソッドの引数に指定した値と一致する要素が見つからなかった場合には ValueError エラーが発生します。

サンプルコード

次のサンプルを見てください。

animallist = ["Dog", "Cat", "Monkey", "Bear", "Rabbit"]

# "Monkey"の要素を削除
animallist.remove("Monkey")
print(animallist)
>> ['Dog', 'Cat', 'Bear', 'Rabbit']

# "Rabbit"の要素を削除
animallist.remove("Rabbit")
print(animallist)
>> ['Dog', 'Cat', 'Bear']

指定した値と同じ値を持つ要素をリストから削除することができました。

リストからすべての要素を削除する

リストからすべての要素を削除する方法です。リスト型で利用可能な clear メソッドを使用します。

リスト.clear()

リストからすべての要素を削除します。

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

mylist = ["A", "B", "C", "D", "E"]
mylist.clear()

print(mylist)
>> []

なおこのページの「スライス機能を使って要素を削除する」でご説明した方法で、リストの最初の要素から最後の要素までを範囲として指定した場合もリストからすべての要素を削除することができます。スライスを使ってリストの全ての要素を指定するには、開始インデックと終了インデックスをどちらも省略して次のように行います。

リスト[:] = []
サンプルコード

次のサンプルを見てください。

colorlist = ["Blue", "Red", "Green"]

colorlist.clear()
print(colorlist)
>> []

リストからすべての要素を削除することができました。

-- --

作成済みのリストから指定した位置にある要素を削除したり、指定した値と同じ値を持つ要素を削除する方法について解説しました。

( Written by Tatsuo Ikura )

Profile
profile_img

著者 / TATSUO IKURA

プログラミングや開発環境構築の解説サイトを運営しています。