Pythonのリストから要素を削除する4つの方法!

Python Python

Pythonのリストに格納した要素を削除する方法について書いています。
載せているコードはPythonのバージョン3.10.5で確認しました。

要素番号(インデックス)を指定して削除する

リストの要素番号を指定して、削除する方法です。
削除したいリストの要素番号をdelに指定して削除します。

drinks = ['milk', 'wine', 'cola', 'water', 'tea']

del drinks[2]
print(drinks) # ['milk', 'wine', 'water', 'tea']

drinksに5つの要素を入れて、リストを作成しました。

次の処理で、delを使っています。
削除したいリストの要素番号を指定して、リストの値を削除します。

リストの番号は0番目から数えます。「0番が’milk’、1番が’wine’…」となります。
今回は「drinks[2]」を指定しているので、’cola’が削除されます。

print関数で確認すると、「['milk', 'wine', 'water', 'tea']」が出力されました。
2番目の要素が削除されたことが確認できました。

要素を指定して削除する

リストに入っている要素を指定して、削除する方法です。
removeメソッドを使って、削除します。

drinks = ['milk', 'wine', 'cola', 'water', 'tea']

drinks.remove('wine')
print(drinks) # ['milk', 'cola', 'water', 'tea']

drinksに5つの要素を入れて、リストを作成しました。

次の処理で、drinksリストからremoveメソッドを呼んでいます。
呼び出し時に、削除したい要素を引数として渡しました。

渡した要素がリストから削除されます。今回は’wine’を削除します。
print関数で確認すると、「['milk', 'cola', 'water', 'tea']」が出力されました。

drinksリストから、’wine’が削除されたことが確認できました。

要素が見つからないとき

removeメソッドを使って、要素が見つからないときにはValueErrorが発生します。
下記のように、存在しない要素を指定したときです。

Traceback (most recent call last):
  File "/Users/yasuaki/xxx.py", line 9, in <module>
    drinks.remove('sake')
ValueError: list.remove(x): x not in list

上記のように、存在しないときに例外が発生します。
例外が発生した時に処理をしたい場合には、下記のようにtry exceptを使って、例外処理を書いておきます。

try:
    drinks = ['milk', 'wine', 'cola', 'water', 'tea']

    drinks.remove('sake')
    print(drinks)
except ValueError:
    print('sakeが見つかりませんでした')

ValueErrorが発生した場合に、その配下の処理が動きます。

今回の場合だと、’sake’がdrinksリストに見つからないため、ValueErrorが発生します。
発生したValueErrorをexceptでキャッチして、print関数でメッセージを出して、処理を終了します。

末尾から値を取得して、削除する

popメソッドを使うと、リストの末尾から値を取り出すことができます。
取り出した値はリストから削除されます。

下記のコードでは、取り出した値を受け取っていますが、変数で受け取らずにpopメソッドで最後だけ削除することも可能です。

drinks = ['milk', 'wine', 'cola', 'water', 'tea']
drink1 = drinks.pop()
drink2 = drinks.pop()

print(drink1) # tea
print(drink2) # water
print(drinks) # ['milk', 'wine', 'cola']

drinksに5つの要素を入れて、リストを作成しました。

次の処理で、drinksリストからpopメソッドを呼んでいます。
popメソッドで返ってくる値をdrink1変数で受け取っています。
次もpopメソッドを返ってくる値をdrink2変数で受け取っています。

それぞれ、リストの末尾から、ひとつずつ取り出されます。
今回の場合だと、’tea’が取り出されて、’water’が取り出されるといった形です。

print関数で変数を確認すると、drink1には’tea’、drink2には’water’が入っていることが確認できました。
リストの内容を確認すると、取り出された値が削除されて、結果「['milk', 'wine', 'cola']」になりました。

要素を全て削除する

リストに入っている全ての要素を削除するには、clearメソッドを使います。

drinks = ['milk', 'wine', 'cola', 'water', 'tea']

drinks.clear()
print(drinks) # []

drinksに5つの要素を入れて、リストを作成しました。

次の処理で、drinksリストからclearメソッドを呼んでいます。
clearメソッドは呼ぶだけで、リストの全ての要素を削除してくれます。

print関数で確認すると、空のリスト([])が返ってきました。
全ての要素が削除されたことが確認できました。

コメント

タイトルとURLをコピーしました