[Python]リスト(List)の末尾からN個の要素を削除するには?

python

どうも、ちょげ(@chogetarou)です。

リスト(List)の最後からN個の要素を削除する方法を紹介します。

スポンサーリンク

方法

インターフェース, インターネット, プログラム, ブラウザ, Www

リスト(List)の最後からN個の要素を削除する方法は、3つあります。

delステートメント

1つ目は、delステートメントを使う方法です。

まず、delを記述します。

そして、delの右辺に、削除する要素数のマイナスの値から末尾までを指定します。

#N=削除する要素数
del list[-N:]

上記のdelは、リストの最後からN個の要素を削除します。

削除する要素数に「0」を指定した場合、リストの要素を全て削除します。

なので、削除する要素数は1以上である必要があります。

使用例

numbers = [1, 2, 3, 4, 5, 6]

del numbers[-3:]

print(numbers)
出力:
[1, 2, 3]

スライス

2つ目は、スライスを使う方法です。

具体的には、list[:-N]のように、先頭から取得する要素数のマイナスの値までスライスします。

#N=削除する要素数
lastN = list[:-N]

上記のスライスは、リストの最後からN個の要素を削除したリスト(List)を生成します。

スライスの削除する要素数に「0」を指定した場合、リストの要素を全て削除します。

なので、削除する要素数は1以上である必要があります。

使用例

numbers = [1, 2, 3, 4, 5, 6]

lastN = numbers[:-3]

print(lastN)
出力:
[1, 2, 3]

forループ

3つ目は、forループを使う方法です。

まず、削除する要素数だけforループします。

そして、forループの処理で、リストからpop()を呼び出します。

#N=削除する要素数
for i in range(N):
    list.pop()

上記のforループは、リストの最後からN個の要素を削除します。

使用例

numbers = [1, 2, 3, 4, 5, 6]

for i in range(3):
    numbers.pop()

print(numbers)
出力:
[1, 2, 3]

まとめ

リスト(List)の末尾からN個の要素を削除する方法は、次の3つです。

  • delステートメントを使う方法
    del list[-N:]
  • スライスを使う方法
    lastN = list[:-N]
  • forループを使う方法

コメント

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