[英]all( generator ) returns True when it should return False
我想检查一个字符串是否包含所有关键字。 我正在使用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()
。
我怎样才能解决这个问题?
你的代码中可能有一个from numpy import *
。 numpy
的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
恢复为文件中的默认版本。 但是,推荐的方法是对numpy
进行选择性或合格的导入。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.