编程语言
首页 > 编程语言> > python – all(generator)在返回False时返回True

python – all(generator)在返回False时返回True

作者:互联网

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

例如:

string  = 'I like roses but not violets'
key_words = ['roses', 'violets', 'tulips']

我已经读过,所有功能都能很好地为我服务.当我以下列方式使用此功能时

if all( keys in string.lower().split() for keys in key_words):
    print True

然后返回True.

我希望返回False,因为郁金香不在string.lower().split()中.

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

解决方法:

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

[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

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

标签:canopy,python,numpy,generator
来源: https://codeday.me/bug/20190823/1695049.html