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