我想检查一个字符串是否包含所有关键字。我正在使用Enthought Canopy发行版。
例如:
string = 'I like roses but not violets'
key_words = ['roses', 'violets', 'tulips']
我已经读过all
函数对我有用。当我以下列方式使用此功能时
if all( keys in string.lower().split() for keys in key_words):
print True
然后返回True
。
由于False
不在tulips
,我希望能够返回string.lower().split()
。
我该如何解决这个问题?
答案 0 :(得分:7)
您的代码中可能有from numpy import *
。 numpy
的{{1}}方法无法很好地处理生成器。
all
如果您无法控制上下文,则可以使用[1]: string = 'I like roses but not violets'
[2]: key_words = ['roses', 'violets', 'tulips']
[3]: if all( keys in string.lower().split() for keys in key_words):
...: print True
...:
[4]: from numpy import *
[5]: if all( keys in string.lower().split() for keys in key_words):
print True
...:
True
将from __builtin__ import all
恢复为文件中的默认版本。但是,建议的方法是对all
进行选择性或合格导入。