在拆分单词后从列表中删除单词:Python

时间:2016-08-29 14:17:05

标签: python list

我有一个清单

List = ['iamcool', 'Noyouarenot'] 
stopwords=['iamcool']

我想要做的是从我的列表中删除stowprds。我试图通过以下脚本实现这一点

query1=List.split()
resultwords  = [word for word in query1 if word not in stopwords]
result = ' '.join(resultwords)
return result

所以我的结果应该是

result =['Noyouarenot']

我收到错误

AttributeError: 'list' object has no attribute 'split'

这也是对的,我错过了什么小事,请帮忙。我感谢每一个帮助。

2 个答案:

答案 0 :(得分:3)

列表理解,条件检查stopwords中的成员资格。

print [item for item in List if item not in stopwords]

filter

print filter(lambda item: item not in stopwords, List)

set操作,您可以参考我关于速度差异的答案here

print list(set(List) - set(stopwords))

输出 - > ['Noyouarenot']

答案 1 :(得分:1)

以下是解决错误的代码段:

lst = ['iamcool', 'Noyouarenot']
stopwords = ['iamcool']

resultwords = [word for word in lst if word not in stopwords]
result = ' '.join(resultwords)
print result

另一种可能的解决方案,假设您的输入列表和停用词列表并不关心订单和重复:

print " ".join(list(set(lst)-set(stopwords)))