内置的all()函数在负数列表中不返回True

Jef*_* R. 1 python built-in

为什么?这不应该是真的吗?

>>> sub = [-1,-2,-3,-4,-5,-6]
>>> print all(sub) < 0
False
>>>
Run Code Online (Sandbox Code Playgroud)

khe*_*ood 6

all(sub)返回,True因为所有元素sub都是非零的.
True不低于零.
因此all(sub) < 0是假的.

如果你想测试所有元素是否sub为负数,你会这样做:

all(x < 0 for x in sub)
Run Code Online (Sandbox Code Playgroud)