Python有一对内置的函数: all()和any(),他们两个都接收可遍历的对象(iterable, 也就是列表list、元组tuple之类的),all检查所有元素是否全都为真,any检查至少有一个元素为真。
他们的定义是:
all(iterable)
Return True if all elements of the iterable are true (or if the iterable is empty).any(iterable)
Return True if any element of the iterable is true. If the iterable is empty, return False.
从定义可以看出,如果把一个空列表传给any,会得到false的结果,这个容易理解,因为里面没有任何一个元素是真的。但是如果把一个空列表传给all,会得到True,这个似乎不能显而易见。
分析
其实,这个问题可以这么理解:any是“或”运算,验证至少一个元素为真,如果对a到z 26个变量做“或”运算,下列等式应该成立,+号表示或:
any(a, b, c, <