Pythonリストから要素を削除する方法:remove()、pop()、clear()、del
Pythonリストから要素を削除する方法
Pythonのlist型は、異種のアイテムを順序付きシーケンスとして格納します。このシーケンスを剪定する際、Pythonには4つの組み込みメカニズムがあります:
- list.remove() – 最初に一致する要素を削除。
- list.pop() – インデックス指定で要素を削除し、その値を返す。
- list.clear() – リスト全体を空にする。
- del – スライスベースの削除またはインデックス削除。
以下では各メソッドを詳細に解説し、よくある落とし穴と簡潔なコードスニペットを提供します。
サンプルリスト
my_list = ['Guru', 50, 11.50, 'Siya', 50, ['A', 'B', 'C']]
インデックスは0から始まります:
- 0:
'Guru' - 1:
50(int) - 2:
11.50(float) - 3:
'Siya' - 4:
50(重複) - 5:
['A', 'B', 'C']
1. list.remove()
指定した値の最初の出現を削除します。値が存在しない場合ValueErrorが発生します。
my_list.remove(50) # 最初の50を削除
my_list.remove('Siya') # 最初の'Siya'を削除
重要ポイント:
- 最初の一致のみ削除;重複は残る。
- 引数は要素のデータ型と完全一致する必要がある。
- メソッドは
Noneを返す(値なし)。
2. list.pop()
インデックス指定で要素を削除し、削除された値を返します。インデックスを省略すると最後の要素が削除されます。
removed = my_list.pop(2) # インデックス2の要素を削除 last = my_list.pop() # 最後の要素を削除
注意点:
- インデックスは0始まり;負のインデックスは末尾から数える。
- 範囲外インデックスは
IndexErrorを発生。 - メソッドは削除された要素を返す。
3. list.clear()
リスト全体をインプレースで空にします。
my_list.clear()
この呼び出し後、my_listは空リスト[]になります。
4. delキーワード
delステートメントは単一要素またはスライスを削除できます。
del my_list[0] # 最初の要素を削除 del my_list[2:5] # インデックス2,3,4の要素を削除
リスト変数自体を削除することも可能: del my_list。
実践的シナリオ
- 最初の要素を削除:
my_list.pop(0)またはdel my_list[0]。 - 特定値の全出現を削除:
my_list = [x for x in my_list if x != target]。 - リストをクリアして再利用:
my_list.clear()。
よくある落とし穴
- 存在しない値に
remove()を使うとValueError。 pop()の負インデックスで意図せず最後の要素を削除する可能性。delでリスト変数自体を削除すると、以降アクセス時にNameError。
まとめ表
| メソッド | 説明 |
|---|---|
list.remove(value) | 最初に一致する要素を削除。 |
list.pop(index) | インデックス指定で要素を削除し返す。 |
list.clear() | リスト全体を空にする。 |
del list[index] / del list[start:stop] | 単一要素またはスライスを削除。 |
Python
- Python データ型マスター: 実践ガイド
- Python 演算子完全マスター: 包括的ガイド
- Python pass文完全マスター: 実践ガイド
- Python 関数引数完全マスター: 位置引数・キーワード引数・デフォルト引数
- Python range()関数をマスター:基礎から応用まで
- Pythonリスト完全ガイド:追加、ソート、長さ、リスト内包表記(実践編)
- Pythonで平均を計算する:実践ガイド
- Python list.count() 完全ガイド:実践例付きで徹底解説
- Pythonリストから重複要素を削除する方法:順序保持と効率のバランス
- Python list.index():要素の位置を検索する実践ガイド
- Python リスト完全ガイド:作成、操作、メソッドのすべて