首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >是否从一个列表中删除另一个列表中的所有值?

是否从一个列表中删除另一个列表中的所有值?
EN

Stack Overflow用户
提问于 2010-03-25 19:20:00
回答 5查看 213K关注 0票数 152

我正在寻找一种方法来从另一个列表中删除列表中的所有值。

如下所示:

代码语言:javascript
复制
a = range(1,10)  
a.remove([2,3,7])  
print a  
a = [1,4,5,6,8,9]  
EN

回答 5

Stack Overflow用户

发布于 2010-03-25 19:22:23

代码语言:javascript
复制
>>> a = range(1, 10)
>>> [x for x in a if x not in [2, 3, 7]]
[1, 4, 5, 6, 8, 9]
票数 162
EN

Stack Overflow用户

发布于 2012-03-30 02:57:40

如果没有重复的值,可以使用set difference。

代码语言:javascript
复制
x = set(range(10))
y = x - set([2, 3, 7])
# y = set([0, 1, 4, 5, 6, 8, 9])

如果需要,然后转换回list。

票数 49
EN

Stack Overflow用户

发布于 2010-03-25 19:26:19

代码语言:javascript
复制
a = range(1,10)
itemsToRemove = set([2, 3, 7])
b = filter(lambda x: x not in itemsToRemove, a)

代码语言:javascript
复制
b = [x for x in a if x not in itemsToRemove]

不要在lambda或create内部创建set。如果你这样做了,它将在每次迭代中被重新创建,完全失去了使用集合的意义。

票数 30
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2514961

复制
相关文章

相似问题

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