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関数で確認すると、空のリスト([]
)が返ってきました。
全ての要素が削除されたことが確認できました。
コメント