all(generator)返回False时返回True

use*_*497 3 python numpy generator canopy

我想检查一个字符串是否包含所有关键字.我正在使用Enthought Canopy分布.

例如:

string  = 'I like roses but not violets'
key_words = ['roses', 'violets', 'tulips']
Run Code Online (Sandbox Code Playgroud)

我已经读过这个all功能对我有用.当我以下列方式使用此功能时

if all( keys in string.lower().split() for keys in key_words):
    print True
Run Code Online (Sandbox Code Playgroud)

然后True返回.

False因为tulips不在,所以我希望能够归还string.lower().split().

我怎样才能解决这个问题?

mus*_*_ut 7

from numpy import *的代码中可能有一个.numpyall方法不能很好地处理发电机.

[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
Run Code Online (Sandbox Code Playgroud)

如果上下文超出了您的控制范围,那么您可以使用from __builtin__ import all恢复all到文件中的默认版本.但是,推荐的方法是进行选择性或合格的导入numpy.

  • 只要有可能,请使用官方发行版,该发行版注意不要做掩盖内置插件等事情. (2认同)