本文发布至今已有8年零150天,可能不再适用,请谨慎对待。
Python有一对内置的函数: all()和any(),他们两个都接收可遍历的对象(也就是列表list、元组tuple之类的),all检查所有元素是否全都为真,any检查至少有一个元素为真。本文简单分析它们的用法。
他们的定义是(注意后面的斜体字):
从定义可以看出,如果把一个空列表传给 any ,会得到 False 的结果,这个容易理解,因为里面没有任何一个元素是真的。但是如果把一个空列表传给 all ,会得到 True,这个似乎不能显而易见。
其实,这个问题可以这么理解:any是或运算,验证至少一个元素为真:
为了保证等式成立,必须使any([])为False,否则any的结果永远为 True 对等地,all是与运算,验证全部元素为真:
为了保证等式成立,必须使all([])为True,否则all的结果永远为False
all函数的这种特性产生了一个后果:当检查一个序列都是真值时,必须先检查非空,不然可能会漏过空序列:
为了保证阅读体验,本站不安放广告。但是,租用服务器和编写文章需要个人资金和时间的投入。
本站是个人网站,若无特别说明,文章均为原创,并采用 署名协议 CC-BY-NC 授权。
欢迎转载,惟请保留原文链接,且不得用于商业用途。