Python リストから項目をポップするには、Python リスト pop()
メソッドを使用します。
この記事では、 pop()
を使って List から要素をポップする方法を簡単に説明します。
Python の基本構文 List pop()
これはリストオブジェクト型のメソッドなので、すべてのリストオブジェクトはこのメソッドを持っています。
で呼び出します。
my_list.pop() |
これはデフォルトの呼び出しで、単にリストの最後の項目をポップします。
もし、あるインデックスからある要素をポップしたいのであれば、インデックスも渡すことができます。
last_element = my_list.pop(index)
|
これは index
にある要素をポップし、それに応じてリストを更新します。
ポップした要素を返しますが、ほとんどの場合、返り値を無視することができます。
さて、ここまでで構文がわかったので、次はその使い方を見てみましょう。
Python を使う list.pop()
デフォルトのケース、つまり単純に最後の要素をpopしたい場合を見てみましょう。
# Create a list from 0 to 10 my_list = [i for i in range ( 11 )]
# Pop the last element print ( "Popping the last element..." )
my_list.pop() # Print the modified list print ( "List after popping:" , my_list)
# Again Pop the last element print ( "Popping the last element..." )
my_list.pop() # Print the modified list print ( "List after popping:" , my_list)
|
結果は以下の通りです。
Popping the last element... List after popping: [ 0 , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 ]
Popping the last element... List after popping: [ 0 , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 ]
|
見てわかるように、最後の要素は確かにリストからポップされました。
では、2つ目のタイプ、つまり特定のインデックスにある要素をポップしたい場合について考えてみましょう。
# Create a list from 0 to 10 my_list = [i for i in range ( 11 )]
# Pop the last element print ( "Popping the element at index 5..." )
my_list.pop( 5 )
# Print the modified list print ( "List after popping:" , my_list)
# Again Pop the last element print ( "Popping the element at index 2..." )
my_list.pop( 2 )
# Print the modified list print ( "List after popping:" , my_list)
|
結果は以下の通りです。
Popping the element at index 5. ..
List after popping: [ 0 , 1 , 2 , 3 , 4 , 6 , 7 , 8 , 9 , 10 ]
Popping the element at index 2. ..
List after popping: [ 0 , 1 , 3 , 4 , 6 , 7 , 8 , 9 , 10 ]
|
ここで、元のリストは [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
なので、インデックス 5 の要素は list[5]
であり、これは 5
でした。
同様に、新しいリストから、2番目のインデックスにある要素、つまり 2
を再び削除します。
したがって、最終的なリストは [0, 1, 3, 4, 6, 7, 8, 9, 10]
となります。
例外を処理する
list.pop()` メソッドは、いくつかの条件に違反した場合、いくつかの例外を発生させます。
IndexError Listが空の場合に発生する例外です。
Python の list pop() メソッドを使うとき、もしリストが空だったら、もうそのリストから pop することはできません。
この場合、IndexError
例外が発生します。
my_list = []
# Will raise an exception, since the list is empty my_list.pop() |
結果は以下の通りです。
Traceback (most recent call last): File "<stdin>" , line 1 , in <module>
IndexError: pop from empty list
|
空のリストからポップしようとしたので、この例外が発生し、対応するエラーメッセージが表示されました。
IndexError インデックス作成時に例外発生
pop(index)` メソッドに渡されたインデックスがリストのサイズ外にある場合、この例外が発生します。
例えば、11個の要素からなるリストの12番目のインデックス要素を削除しようとすると、この例外が発生します。
my_list = [i for i in range ( 10 )]
# Will raise an exception, as len(my_list) = 11 my_list.pop( 12 )
|
結果は以下の通りです。
Traceback (most recent call last): File "<stdin>" , line 2 , in <module>
IndexError: pop index out of range
|
予想通り、my_list[12
が存在しないため、IndexError例外が発生しました。
この記事もチェック:Pythonでのディレクトリの作成、取得、削除、存在の確認の方法を解説する
まとめ
今回は、list.pop()
メソッドを使用して、リストから要素をポップする方法を学びました。