webプロダクトいんふぉ

webの気になった情報を発信中!!

pythonの配列(リスト)メソッド

応用的なメソッド

リストの中身を指定して削除する方法

基本:delを用いて削除

よくあるのがこのパターンで、リストから値を削除するときによく使うメソッド ※ delをインデックスを指定せずに使用するとリスト毎削除されるので要注意

s = ['a', 'b', 'c', 'd', 'e', 'f', 'g']
del s[1]
print(s) # ['a', 'c', 'd', 'e', 'f', 'g']

範囲で削除する場合にはスライスを使用してあげれば複数の値を削除可能

s = ['a', 'b', 'c', 'd', 'e', 'f', 'g']
del s[1:4]
print(s) # ['a', 'e', 'f', 'g']

空のリストを使用して削除

この方法はスライスを用いていないと使用不可

s = ['a', 'b', 'c', 'd', 'e', 'f', 'g']
s[1:4] = []
print(s) # ['a', 'e', 'f', 'g']

delと同様の結果を得ることが可能 ただ、インデックスを使用すると空のリストが挿入され二次元配列になる

s = ['a', 'b', 'c', 'd', 'e', 'f', 'g']
s[1] = []
print(s) # ['a', [], 'c', 'd', 'e', 'f', 'g']

他にはただ削除するのではなく、リストの中の値を取り出し、かつ削除する場合はpopを使用可能

s = ['a', 'b', 'c', 'd', 'e', 'f', 'g']
i = s.pop(0)
print(i) # a
print(s) # ['b', 'c', 'd', 'e', 'f', 'g']

もう一つ、インデックスではなくリストの値を指定して削除するにはremoveを使用

s = ['a', 'b', 'c', 'd', 'e', 'f', 'g']
s.remove('c')
print(s) # ['a', 'b', 'd', 'e', 'f', 'g']