我试图从列表中删除不必要的单词(an,a,the)。
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']这是怎么回事?
发布于 2013-10-04 07:53:45
问题是,您正在将x值与整个列表unWantedWords进行比较。
RD1 = [x for x in Test if x != unWantedWords]用not代替,以检查x是否是.不要进去!
RD1 = [x for x in Test if x not in unWantedWords]发布于 2013-10-04 07:51:47
RD1 = [x for x in Test if x not in unWantedWords]unWantedWords是一个数组,您正在将您的单词与数组组合在一起,这就是它不能工作的原因。
发布于 2013-10-04 08:02:59
如果你不介意的话:
您可以简单地使用“set”(以下是核心算法):
>>> Test = ['a', 'an', 'the', 'love']
>>> unWantedWords = ['a', 'an', 'the']
>>> print set(Test) - set(unWantedWords)
set(['love'])
>>> print list(set(Test) - set(unWantedWords))
['love']这具有优化复杂性的优点。
当然,您可以包装这个代码以保持副本和订单..。
https://stackoverflow.com/questions/19176006
复制相似问题