我有一个清单
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'
这也是对的,我错过了什么小事,请帮忙。我感谢每一个帮助。
答案 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)))