all(generator)返回False时返回True

时间:2015-07-29 06:21:35

标签: python numpy generator canopy

我想检查一个字符串是否包含所有关键字。我正在使用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()

我该如何解决这个问题?

1 个答案:

答案 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进行选择性或合格导入。