Home » Python » Pythonのリストから末尾の要素を削除する

Pythonのリストから末尾の要素を削除する

動作検証バージョン: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]

Pythonのリストはインデックスにマイナスの値を指定できます。これにより末尾の要素を削除しています。文字列から末尾n文字を削除するのと同じ考え方です。

もちろん、
  ls[:-2]
を実行した場合には、末尾2つの要素が削除された結果が出力されます。

ただし上記の方法は、元のリストlsは変更されていません。新たにリストを作っています。id関数で識別値を確認すると、以下のとおりです。
>>> id(ls)
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]

リストls2を作ったあとでも、元のリストlsはそのままです。

del文でリストの末尾要素を削除する

新たなリストを作るのではなく、元のリストから末尾の要素を削除するのなら、del文を使います。
>>> ls
[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]

リストの要素を取得するほうが主たる役目ですが、list.popメソッドでは結果的に元のリストから、popメソッドで取得した要素が削除されます。

最終更新日時:2020-05-27 19:42

[スポンサードリンク]

Home » Python » Pythonのリストから末尾の要素を削除する

「Python」の記事一覧

検索


Copyright © インストラクターのネタ帳 All Rights Reserved.

.