Pythonでリストを使っていると、「この場所の値だけ消したい」「まとめて複数の値を削除したい」という場面があります。
そんなときに便利なのが、del
文です。
del
は、番号を使ってリストの要素を削除できるPythonの機能で、remove()
やpop()
よりも自由な使い方ができます。
この記事では、del
文の基本的な削除方法から、まとめて削除する方法まで、わかりやすく説明します。
del文の基本的な使い方

書き方
del リスト[番号]
使用例:指定した場所の要素を削除
# フルーツのリストを作成
fruits = ["りんご", "バナナ", "みかん"]
# 1番目の"バナナ"を削除
del fruits[1]
# 結果を確認
print(fruits) # ['りんご', 'みかん']
特徴
- 番号は0から始まります(0番目、1番目、2番目…)
del
はPythonの文で、何も返しません
まとめて削除する方法(スライス削除)
例1:連続する複数の要素を削除
# 数字のリストを作成
numbers = [0, 1, 2, 3, 4, 5]
# 2番目から4番目まで削除(2, 3, 4を削除)
del numbers[2:5]
# 結果を確認
print(numbers) # [0, 1, 5]
例2:とびとびで削除
# データのリストを作成
data = [0, 1, 2, 3, 4, 5]
# 偶数番目を削除(0番目、2番目、4番目)
del data[::2]
# 結果を確認
print(data) # [1, 3, 5]
ポイント: スライス削除を使うと、複数の要素を一度に削除できて便利です。
リスト全体を削除する方法
パターン1:リスト変数そのものを削除
# リストを作成
a = [1, 2, 3]
# リスト変数を削除
del a
# print(a) # エラー!(aがもう存在しない)
パターン2:リストの中身だけを空にする
# リストを作成
a = [1, 2, 3]
# 中身だけ削除(空のリストにする)
del a[:]
# 結果を確認
print(a) # []
clear()メソッドとの違い
# clear()も同じ効果
a = [1, 2, 3]
a.clear() # del a[:] と同じ
print(a) # []
他の削除方法との違いと使い分け
4つの削除方法を比較
方法 | 指定方法 | 削除できる数 | 戻り値 |
---|---|---|---|
del リスト[番号] | 番号 | 1つまたは複数 | なし |
pop(番号) | 番号 | 1つだけ | 削除した値 |
remove(値) | 値 | 1つだけ | なし |
clear() | なし | 全部 | なし |
使い分けのコツ
- 値で削除したい →
remove()
- 番号で削除したい →
del
またはpop()
- 削除した値を使いたい →
pop()
- 複数まとめて削除したい →
del
比較例
# 数字のリストを作成
nums = [10, 20, 30, 40, 50]
# 値で削除
nums.remove(30) # 30という値を削除
print(nums) # [10, 20, 40, 50]
# 番号で削除(戻り値あり)
deleted = nums.pop(1) # 1番目を削除して値を取得
print(f"削除した値:{deleted}") # 削除した値:20
print(nums) # [10, 40, 50]
# 番号で削除(戻り値なし)
del nums[0] # 0番目を削除
print(nums) # [40, 50]
delを使うときの注意点

エラー1:存在しない番号を指定する
# リストを作成
items = [1, 2, 3]
# 存在しない5番目を削除しようとする
del items[5] # エラー!(IndexError)
対策: 削除する前に、その番号があるかチェックする
# 安全な削除方法
if len(items) > 5:
del items[5]
else:
print("その番号は存在しません")
注意点2:リストの中にリストがあるとき
# 2次元リストを作成
matrix = [[1, 2], [3, 4]]
# 0番目のリストの1番目を削除
del matrix[0][1] # 2を削除
# 結果を確認
print(matrix) # [[1], [3, 4]]
実際に使える例
例1:成績リストから不要な点数を削除
# テストの点数リスト
scores = [85, 92, 78, 95, 88]
# 一番低い点数(78)の番号を見つけて削除
min_index = scores.index(min(scores))
del scores[min_index]
print(f"最低点を除いた点数:{scores}") # [85, 92, 95, 88]
例2:ユーザーが指定した範囲を削除
# データリストを作成
data = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
# ユーザーに削除範囲を聞く
start = int(input("削除開始番号:"))
end = int(input("削除終了番号:"))
# 範囲をチェックして削除
if 0 <= start < len(data) and 0 <= end <= len(data) and start < end:
del data[start:end]
print(f"削除後のデータ:{data}")
else:
print("正しい範囲を入力してください")
まとめ
Pythonのdel
文は、番号を使った削除や、まとめて削除ができる便利な機能です。
他の削除方法と上手に使い分けることで、より効率的なプログラムが書けるようになります。
この記事のポイント
del リスト[番号]
で特定の要素を削除del リスト[開始:終了]
で範囲削除が可能del リスト[:]
で中身全削除(clear()
と同じ)del リスト
で変数そのものを削除remove()
やpop()
との違いを理解して使い分けよう
コメント