Python: リストから指定位置の要素を削除する delの使い方

Pythonでリストから指定した位置(インデックス)の要素を削除する場合は、 del文を使います。 ここではリストにおけるdel文の使い方を紹介します。

インデックスではなく、要素値を指定して削除する場合はremoveメソッドを使います。
(関連記事: リストから指定した値の要素を削除する remove

1つの要素を削除する

書式
del リスト[インデックス]

インデックスに削除したい要素の位置を指定します。 先頭の要素を削除する場合「0」を指定します。
インデックスにマイナスの値を指定することも可能です。 その場合「-1」が最終要素になります。 要素数以上のインデックスを指定するとエラーが発生します。

li  = ["a", "b", "c"]

# 2番目の要素を削除
del li[1]

print(li) # ['a', 'c']

# 最終要素を削除
del li[-1]

print(li) # ['a']

範囲を指定して複数の要素を削除

del文では単体のインデックスだけでなく、 スライスで範囲を指定して複数の要素を削除することもできます。

書式
del リスト[削除開始インデックス:削除終了インデックス + 1]
li  = ["a", "b", "c", "d", "e", "f", "g"]

# 2番目から3番目の要素を削除
del li[1:3]

print(li) # ['a', 'd', 'e', 'f', 'g']

ステップ数を指定して削除

ステップ数を指定してリストの要素を削除することもできます。

書式
del リスト[削除開始インデックス:削除終了インデックス + 1:ステップ数]

以下のコードではステップ数に2を指定して、 奇数番目の要素を削除しています。

li  = ["a", "b", "c", "d", "e", "f", "g"]

# 奇数番目の要素を削除
del li[::2]

print(li) # ['b', 'd', 'f']

リストを削除する

del文ではリストの要素だけでなく、リスト自体を削除することもできます。

書式
del リスト

delの後にリスト名だけを記述するとリストが削除されます。 削除後にリストを参照した場合は「未定義」としてエラーが発生します。

li  = ["a", "b", "c"]

# リストを削除
del li

print(li)  # エラー

# 実行結果 エラーメッセージ
NameError: name 'li' is not defined
Python