首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用列表理解从列表中删除单词

使用列表理解从列表中删除单词
EN

Stack Overflow用户
提问于 2013-10-04 07:49:28
回答 4查看 1.3K关注 0票数 0

我试图从列表中删除不必要的单词(an,a,the)。

代码语言:javascript
复制
Test = ['a', 'an', 'the', 'love']
unWantedWords = ['a', 'an', 'the']
RD1 = [x for x in Test if x != unWantedWords]
print(RD1)
output ->['a', 'an', 'the', 'love']

这是怎么回事?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2013-10-04 07:53:45

问题是,您正在将x值与整个列表unWantedWords进行比较。

代码语言:javascript
复制
RD1 = [x for x in Test if x != unWantedWords]

用not代替,以检查x是否是.不要进去!

代码语言:javascript
复制
RD1 = [x for x in Test if x not in unWantedWords]
票数 5
EN

Stack Overflow用户

发布于 2013-10-04 07:51:47

代码语言:javascript
复制
RD1 = [x for x in Test if x not in unWantedWords]

unWantedWords是一个数组,您正在将您的单词与数组组合在一起,这就是它不能工作的原因。

票数 4
EN

Stack Overflow用户

发布于 2013-10-04 08:02:59

如果你不介意的话:

  1. 移除重复
  2. 保持原秩序

您可以简单地使用“set”(以下是核心算法):

代码语言:javascript
复制
>>> Test = ['a', 'an', 'the', 'love']
>>> unWantedWords = ['a', 'an', 'the']
>>> print set(Test) - set(unWantedWords)
set(['love'])

>>> print list(set(Test) - set(unWantedWords))
['love']

这具有优化复杂性的优点。

当然,您可以包装这个代码以保持副本和订单..。

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

https://stackoverflow.com/questions/19176006

复制
相关文章

相似问题

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