Python のリスト (list) - 要素の削除
ここでは Python のリスト (list) から要素を削除する方法についてご説明します。
Python のリストから要素を削除するには、インデックスを指定して削除する方法と、リストの一番最後の要素を削除する方法と、値を指定して削除する方法があります。
それぞれの方法を、実際にコードを実行しながら見ていきましょう。
del 文でリストから要素を削除する
Python のリストで、削除したい要素のインデックスがわかっている場合は del 文を使って要素を削除することができます。
リストから 2 つ目の要素を del 文を使って削除してみましょう。
Python のインデックスは 1 からではなく、0 から始まるので、2 つ目の要素のインデックスは 1 です。
names = [ "Tanaka", "Suzuki", "Sato", "Yamada"]
print(names)
del names[1]
print(names)
実行結果は次のようになり、2 番目の Suzuki が削除されていますね。
['Tanaka', 'Suzuki', 'Sato', 'Yamada']
['Tanaka', 'Sato', 'Yamada']
pop()メソッドでリストから要素を削除する
Python のリストの一番最後の要素を削除したい時や、インデックスを指定して削除し、削除した値を取得したい時は pop() メソッドを使います。
pop() を使って、一番最後の要素を削除して、削除した値を取得してみましょう。
names = [ "Tanaka", "Suzuki", "Sato", "Yamada"]
print(names)
name_popped = names.pop()
print(names)
print(name_popped)
実行結果は次のようになり、names リストからは一番最後の Yamada が削除され、name_popped という変数に Yamada が入っていますね。
['Tanaka', 'Suzuki', 'Sato', 'Yamada']
['Tanaka', 'Suzuki', 'Sato']
Yamada
pop() を使って、インデックスを指定して、要素を削除することもできます。
また、削除した値がいらない時は、変数に代入する必要はありません。
names = [ "Tanaka", "Suzuki", "Sato", "Yamada"]
print(names)
names.pop(1)
print(names)
names.pop(1)
print(names)
実行結果は次のようになり、2 番目の要素が 2 回削除されています。
['Tanaka', 'Suzuki', 'Sato', 'Yamada']
['Tanaka', 'Sato', 'Yamada']
['Tanaka', 'Yamada']
remove()メソッドでリストから要素を削除する
Python のリストから値を指定して削除するには、remove() というメソッドを使います。
インデックスはわからないけど、この値を削除したい、というような時に便利です。
names リストから remove() を使って、Sato を削除してみましょう。
names = [ "Tanaka", "Suzuki", "Sato", "Yamada"]
print(names)
names.remove("Sato")
print(names)
実行結果は次のようになり、Sato が削除されていますね。
['Tanaka', 'Suzuki', 'Sato', 'Yamada']
['Tanaka', 'Suzuki', 'Yamada']
ひとつ気をつけないといけないのは、remove() は前から順番に探して、最初にみつけた値しか削除してくれません。
例えば、次のように Sato という値の要素が二つあった場合は、2 個目の Sato は削除されません。
names = [ "Tanaka", "Suzuki", "Sato", "Yamada", "Sato"]
print(names)
names.remove("Sato")
print(names)
実行結果は次のようになり、ひとつ目の Sato だけが削除されています。
['Tanaka', 'Suzuki', 'Sato', 'Yamada', 'Sato']
['Tanaka', 'Suzuki', 'Yamada', 'Sato']
リストに同じ値が複数ある可能性のある時は気をつけてくださいね!
clear()メソッドでリストから全要素を削除する
最後に、リストの中の要素を全部削除したい時には clear() メソッドを使って削除することができます。
names = [ "Tanaka", "Suzuki", "Sato", "Yamada", "Sato"]
print(names)
names.clear()
print(names)
実行結果は次のようになり、全ての要素が削除されていますね。
['Tanaka', 'Suzuki', 'Sato', 'Yamada', 'Sato']
[]
以上、Python のリスト (list) から要素を削除する方法についてご説明しました。