SEのmomoです。
Pythonでリストから要素を削除するには、「pop」「del」「remove」の3つの方法があります。
この3つ、いまいち違いが分かりにくいですよね。
私も学び始めのころ悩みました。
そこで、私なりにわかりやすくまとめてみたので、是非参考にしてください。
まず、Pythonのリストとは?
Pythonのリストは、複数の値をひとまとめにできる便利な構造です。
リストを作るときは[]で囲みます。
例えばフルーツのリストがあるとします。
fruits = ["りんご", "バナナ", "みかん"]
このリストの内、どれかの値を消すときに、「pop」「del」「remove」の3つのどれかを使います。
「pop」「del」「remove」の違いを比較
3つの違いについて、まとめてみました。
赤文字のところが、押さえておくとよいポイントです。
pop | del | remove | |
---|---|---|---|
指定方法 | インデックス | インデックス スライス | 削除したい値 |
戻り値 | あり(削除された値) | なし | なし |
複数削除 | × | 〇 | × |
①popの使いかたと特徴
pop使いかた
popの()には、消したい位置のインデックスを指定します。先頭が0番目です。
例えばバナナ(先頭から1番目と数える)を消すときは、こう書きます。
fruits = ["りんご", "バナナ", "みかん"]
item = fruits.pop(1)
print(item) ➜ バナナ
print(fruits) ➜ ['りんご', 'みかん']
popの特徴
- インデックス(位置)を指定して要素を削除できる
- 削除した要素が戻り値として返る
- 【おまけ】インデックスを省略すると「最後の要素」が削除される
②del の使い方と特徴
del の使いかた
delでは、消したい場所をインデックスかスライスで指定します。
まずはインデックスの場合、popと同じように前から何番目かを指定します(0始まり)。
fruits = ["りんご", "バナナ", "みかん"]
del fruits[1]
print(fruits) # ➜ ["りんご", "みかん"]
続いてスライスの場合。
fruits = ["りんご", "バナナ", "みかん"]
del fruits[0:2]
print(nums) # ➜ ["りんご", "バナナ"]
del の特徴
- インデックスやスライスで要素を削除する
- 値の取得はできない(戻り値なし)
- スライスを使えば複数の要素をまとめて削除できる
③removeの使い方と特徴
remove の使いかた
fruits = ["りんご", "バナナ", "みかん"]
fruits.remove("バナナ")
print(fruits) # ➜ ['りんご', 'みかん']
remove の特徴
- 値を指定して削除
- 最初に見つかった1つだけ削除される
- 削除した値は取得できない
まとめ:一番わかりやすい使い分けポイント
どうでしょうか。
1つずつ細かく説明しましたが、まだややこしいでしょうか(/ω\)
そんなときは、以下のポイントでどうでしょうか。これが一番簡単な使い分けだと思います。
- 削除した値を知りたいなら➡ pop
- 範囲でまとめて削除したいなら ➡ del
- 値を指定したいなら ➡ remove
実際にコードを書いて試してみると、より理解が深まります。ぜひ試してみてください。