動作検証バージョン:64bit版 Windows 10 Pro + Python 3.8.0
「python list 末尾 削除」
という検索キーワードでのアクセスがありました。
Pythonのリストで、末尾の要素を削除するには、どのようなコードを書けばいいのかを探していた方による検索です。
インタラクティブシェルでいろいろなコードを試してみることをおすすめします。
[スポンサードリンク]
リストから末尾要素を削除する2つの考え方
「python list 末尾 削除」を検索した方が、どうイメージしていたのか不明ですが、大きく2種類の考え方があります。
末尾の要素を削除した新たなリストを作る場合と、元のリストから末尾の要素を削除してしまう場合の、2つです。
スライスを使って末尾の要素を削除する
まずは末尾の要素を削除した新たなリストを作る場合です。
以下のようなコードで、末尾の要素が削除される様子を確認できます。
>>> ls = [1,2,3,4,5]
>>> ls
[1, 2, 3, 4, 5]
>>>
>>> ls[:-1]
[1, 2, 3, 4]
>>> ls
[1, 2, 3, 4, 5]
>>>
>>> ls[:-1]
[1, 2, 3, 4]
Pythonのリストはインデックスにマイナスの値を指定できます。これにより末尾の要素を削除しています。文字列から末尾n文字を削除するのと同じ考え方です。
もちろん、
ls[:-2]
を実行した場合には、末尾2つの要素が削除された結果が出力されます。
>>> id(ls)
2123488167168
>>> id(ls[:-1])
2123488166656
2123488167168
>>> id(ls[:-1])
2123488166656
スライスを使って別のリストを作成する
インタラクティブシェルで以下のように実行してみれば、末尾の要素を削除した新たなリストが作れれている様子を、より明確に確認できます。
>>> ls
[1, 2, 3, 4, 5]
>>>
>>> ls2 = ls[:-1]
>>> ls2
[1, 2, 3, 4]
>>> ls
[1, 2, 3, 4, 5]
[1, 2, 3, 4, 5]
>>>
>>> ls2 = ls[:-1]
>>> ls2
[1, 2, 3, 4]
>>> ls
[1, 2, 3, 4, 5]
リストls2を作ったあとでも、元のリストlsはそのままです。
del文でリストの末尾要素を削除する
新たなリストを作るのではなく、元のリストから末尾の要素を削除するのなら、del文を使います。
>>> ls
[1, 2, 3, 4, 5]
>>>
>>> del ls[-1]
>>> ls
[1, 2, 3, 4]
[1, 2, 3, 4, 5]
>>>
>>> del ls[-1]
>>> ls
[1, 2, 3, 4]
list.popメソッドでもリストの末尾要素が削除される
「python list 末尾 削除」と検索なさった方には、上記いずれかの方法が参考になると思うのですが、list.popメソッドでも、結果的に末尾の要素を削除できます。
>>> ls
[1, 2, 3, 4, 5]
>>>
>>> ls.pop()
5
>>> ls
[1, 2, 3, 4]
[1, 2, 3, 4, 5]
>>>
>>> ls.pop()
5
>>> ls
[1, 2, 3, 4]
リストの要素を取得するほうが主たる役目ですが、list.popメソッドでは結果的に元のリストから、popメソッドで取得した要素が削除されます。
最終更新日時:2020-05-27 19:42
[スポンサードリンク]