首页 > 后端开发 > Python教程 > Python 的 `any()` 和 `all()` 函数在比较元组时如何表现?

Python 的 `any()` 和 `all()` 函数在比较元组时如何表现?

Barbara Streisand
发布: 2024-12-09 20:04:15
原创
592 人浏览过

How Do Python's `any()` and `all()` Functions Behave When Comparing Tuples?

Python 的任何和所有函数如何工作

比较元组时,any() 和 all() 内置函数都会进入玩。它们的区别如下:

any()

any() 如果迭代中至少有一个元素为 Truthy(即不是 False、0、 '',等等)。

all()

all(),另一方面,仅当可迭代中的每个元素都是 Truthy 时才返回 True。

理解用例

在代码片段中提供:

print [any(x) and not all(x) for x in zip(*d['Drd2'])]
登录后复制

zip(*d['Drd2']) 中的每个元组都在any(x) 而不是all(x) 的上下文中进行评估。然而,意外的 [False, False, False] 输出引发了问题。

错误解释

根据任何和全部的真值表:

any(x) all(x) any(x) and not all(x)
True False True
False True False
True True False
False False False

在这种情况下,所有元组都由相同的数字(即 True 值)组成,因此 any(x) 始终是True,并且 all(x) 也将为 True。因此,any(x) 而不是 all(x) 应始终评估为 False,这不会反映在输出中。

错误原因

错误所在错误地期望 (x[0] != x[1]) 是一个 Truthy 表达式。但是,当元组中的数字相等时(例如 (1, 1)),(x[0] != x[1]) 的计算结果为 False。

正确逻辑

要准确确定元组中的任何值是否不同,您可以使用以下命令逻辑:

print [x[0] != x[1] for x in zip(*d['Drd2'])]
登录后复制

此表达式按预期正确比较每个元组的相应元素以识别任何差异。

以上是Python 的 `any()` 和 `all()` 函数在比较元组时如何表现?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板