我需要知道列表中的任何元素是否符合特定标准。为此,我想在 any() 函数中使用生成器表达式,但输出似乎行为不端:
>>> x
[0, 0, 0]
>>> gen = (z==1 for z in x)
>>> any(gen)
True
如果我改为使用列表,我会得到正确的答案:
>>> x
[0, 0, 0]
>>> com = [z==1 for z in x]
>>> any(com)
False
我已经在两台不同的 Windows 7 计算机上进行了尝试,一台使用 python 2.7.2,另一台使用 2.7.3。两者都返回错误的答案。我有人在他们有 python 2.7.5 的机器上试了一下,他得到了正确的答案。有人知道这里发生了什么吗?