リストに値が存在する場合(存在しない可能性もあります)は、リストから値を削除したいと思います。
a = [1, 2, 3, 4]
b = a.index(6)
del a[b]
print(a)
上記ではエラーが発生します:
ValueError: list.index(x): x not in list
だから私はこうしなければなりません:
a = [1, 2, 3, 4]
try:
b = a.index(6)
del a[b]
except:
pass
print(a)
しかし、もっと簡単な方法はないのでしょうか?
ベストアンサー1
要素の最初の出現を削除するには、list.remove
:
>>> xs = ['a', 'b', 'c', 'd']
>>> xs.remove('b')
>>> print(xs)
['a', 'c', 'd']
要素の出現をすべて削除するには、リストの理解:
>>> xs = ['a', 'b', 'c', 'd', 'b', 'b', 'b', 'b']
>>> xs = [x for x in xs if x != 'b']
>>> print(xs)
['a', 'c', 'd']