2014-02-14 30 views
3

所以我想測試一個列表是否排序。閱讀本page之後,我這樣做:all()返回一個發生器?

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()

返回真,如果迭代的所有元素都是真(或如果 可迭代爲空)

我失去了什麼?

+0

不上的Python 2.7.5,我得到了假的... ... – IProblemFactory

+0

我得到'FALSE'無論是在Python2和3 –

+0

您可以通過在python2 __builtin__模塊和python3 builtins模塊訪問無法重現。請提供[SSCCE](http://sscce.org/)。 – delnan

回答

11

這是那些愚蠢的星進口的問題:

from numpy import * 

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 0x7f976073fdc0> 

Python的all工作正常。

import __builtin__ 
__builtin__.all(b >= a for a, b in zip(ll, ll[1:]))