首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >有没有一种简单的方法可以按值删除列表元素?

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

Stack Overflow用户
提问于 2010-05-08 15:48:29
回答 24查看 1.9M关注 0票数 1.1K

我想从列表中删除一个值,如果它存在于列表中(可能不存在)。

代码语言:javascript
复制
a = [1, 2, 3, 4]
b = a.index(6)

del a[b]
print(a)

上面的情况(其中它不存在)显示了以下错误:

代码语言:javascript
复制
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

所以我必须这样做:

代码语言:javascript
复制
a = [1, 2, 3, 4]

try:
    b = a.index(6)
    del a[b]
except:
    pass

print(a)

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

EN

Stack Overflow用户

发布于 2010-05-08 22:57:39

下面是如何就地完成它(不需要列表理解):

代码语言:javascript
复制
def remove_all(seq, value):
    pos = 0
    for item in seq:
        if item != value:
           seq[pos] = item
           pos += 1
    del seq[pos:]
票数 21
EN
查看全部 24 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2793324

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档