【发布时间】:2014-02-14 15:19:39
【问题描述】:
所以我想测试一个列表是否已排序。在阅读了这个page 之后,我这样做了:
ll = [ 0, 8, 4, 12, 2, 10, 6, 14, 1, 9, 5, 13, 3, 11, 7, 15 ]
all(b >= a for a, b in zip(ll, ll[1:]) )
输出
<generator object <genexpr> at 0x10d9ecaa0>
好的,all() 返回一个生成器。但这就是 Python 文档中关于 all() 的内容:
如果迭代的所有元素都为真(或者如果 可迭代为空)
我错过了什么?
【问题讨论】:
-
不是在 Python 2.7.5 上,我得到了 False...
-
我在 Python2 和 3 中都得到了
False -
也无法复制。请给SSCCE。
-
也许你的
all被用户自定义的函数覆盖了。如果你写print all,是不是<built-in function all>? -
.. 这就是为什么没有人应该做
from numpy import *,或者使用任何做同样事情的环境。