有没有简单的方法按值删除列表元素?
有没有简单的方法按值删除列表元素?
我想要从列表中删除一个值,如果它存在于列表中(可能不存在的话)。
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)
但是难道没有更简单的方法吗?
admin 更改状态以发布 2023年5月21日
使用 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']