Python-有没有一种简单的方法可以按值删除列表元素?

发布于 2021-02-02 23:15:39

a = [1, 2, 3, 4]
b = a.index(6)

del a[b]
print a

上面显示了以下错误:

Traceback (most recent call last):
  File "D:\zjm_code\a.py", line 6, in <module>
    b = a.index(6)
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

但是,没有简单的方法可以做到这一点吗?

关注者
0
被浏览
67
1 个回答
  • 面试哥
    面试哥 2021-02-02
    为面试而生,有面试问题,就找面试哥。

    要删除列表中元素的首次出现,只需使用list.remove

    >>> a = ['a', 'b', 'c', 'd']
    >>> a.remove('b')
    >>> print a
    ['a', 'c', 'd']
    

    请注意,它不会删除所有出现的元素。为此使用列表理解。

    >>> a = [10, 20, 30, 40, 20, 30, 40, 20, 70, 20]
    >>> a = [x for x in a if x != 20]
    >>> print a
    [10, 30, 40, 30, 40, 70]
    


知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看