您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

python any()函数如何工作?

python any()函数如何工作?

如果您使用any(lst)它,那将lst是可迭代的,其中列出了一些项目。如果包含[0, False, '', 0.0, [], {}, None](均具有布尔值False),any(lst)则将为False。如果lst还包含以下任何[-1, True, "X", 0.00001](所有这些评估为True),那么any(lst)True

在您发布的代码x > 0 for x in lst,这是另一种可迭代的类型,称为 。在将生成器表达式添加到Python之前,您已经创建了一个 ,它看起来非常相似,但是带有[][x > 0 for x in lst]。从lst包含的 清单[-1, -2, 10, -4, 20],您可以得到:。然后,由于有至少一个值,此内部值将传递给该函数,该函数将返回。 __[False, False, True, False, True]``any``True``True

但是使用 ,Python不再需要创建True(s)and的内部列表,False(s)因为any函数迭代生成器表达式一次生成的值时将生成值。 并且 ,由于any短路,一旦看到第一个True值,它将立即停止迭代。如果lst使用类似方法创建lst = range(-1,int(1e9))(或者xrange如果使用 Python2.x ),则这将特别方便。即使此表达式将生成超过十亿个条目,any但到达时只需要到达第三个条目1,它的值就Truex>0,因此any可以返回True

如果您创建了 ,Python首先必须在内存中创建十亿个元素的列表,然后将其传递给any。但是,通过使用 ,您可以在看到a或value时就拥有Python的内置函数,例如likeanyall早早爆发。True``False

python 2022/1/1 18:31:33 有199人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶