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