繁体   English   中英

all(generator)返回False时返回True

[英]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 * 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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM