こんにちは、モグです。
Pythonでリストから要素を削除するには、「pop」「del」「remove」の3つの方法がありますよね。
この3つ、いまいち違いが分かりにくくありませんか?
そこで、私なりにわかりやすくまとめてみました。
まず、Pythonのリストとは?
Pythonのリストは、複数の値をひとまとめにできる便利な構造です。
リストを作るときは[]で囲みます。
例えばこんなリストがあるとします。
リスト = ["a", "b", "c"]
このリストの内、どれかの値を消すときに、「pop」「del」「remove」の3つのどれかを使います。
「pop」「del」「remove」の違いを比較
3つの違いについて、いきなりまとめ。
赤文字のところが、押さえておくとよいポイントかと。
| pop | del | remove | |
|---|---|---|---|
| 指定方法 | インデックス | インデックス or スライス | 削除したい値 |
| 戻り値 | あり(削除された値) | なし | なし |
| 複数削除 | × | 〇 | × |
①popの使いかたと特徴
popの使いかた
popの()には、消したい位置のインデックスを指定します。先頭が0番目。
例えば“b”(先頭から1番目と数える)を消すときは、こう書きます。
リスト= ["a", "b", "c"]
item = リスト.pop(1)
print(item) ➜ b
print(リスト) ➜ ["a", "c"]
popの特徴
- インデックス(位置)を指定して要素を削除
- 削除した要素が戻り値として返る
- 【おまけ】インデックスを省略すると「最後の要素」が削除される
②del の使い方と特徴
del の使いかた
delでは、消したい場所をインデックスかスライスで指定します。
まずはインデックスの場合、popと同じように前から何番目かを指定します(0始まり)。
リスト= ["a", "b", "c"]
del リスト[1]
print(リスト) ➜ ["a", "c"]
続いてスライスで指定する方法。
リスト= ["a", "b", "c"]
del リスト[0:2]
print(リスト) ➜ ["c"]
del の特徴
- インデックスやスライスで要素を削除する
- 値の取得はできない(戻り値なし)
- スライスを使えば複数の要素をまとめて削除できる
③removeの使い方と特徴
remove の使いかた
リスト= ["a", "b", "b"]
リスト.remove("b")
print(リスト) ➜ ["a", "b"]
remove の特徴
- 値を指定して削除
- 最初に見つかった1つだけ削除される
まとめ:一番わかりやすい使い分けポイント
結論、
- 削除した値を知りたいなら➡ pop
- 範囲でまとめて削除したいなら ➡ del
- 値を指定したいなら ➡ remove

これだけ覚えたらわかりやすい
実際にコードを書いて試してみると、より理解が深まります。ぜひ試してみてください。

