具有布尔值和整数值的列表的最大和最小值

问题描述 投票:0回答:1

哪位好心人解释一下,

a=[0, True, False, 1]
a.sort() 
max(a)
min(a)

排序后a的值变为[0, False, True, 1]。当说 True 等于 1 且 False 等于 0 时,python 根据什么原理对原始列表进行这样的排序。

max(a) 给出 True 作为结果 min(a) 结果为 0

Python 如何将布尔值 True 视为大于 1? Python 如何将 0 视为小于 False?

无法理解Python如何比较布尔值和整数。

提前致谢。

python boolean max min
1个回答
0
投票

Python 不会将

True
视为大于 1。如果有多个最大元素,它只返回第一个。引用自 官方文档

如果多个项目都是最大的,该函数返回遇到的第一个。这与其他排序稳定性保持工具一致......

min()
也是如此。
max()
返回
True
,因为它等于
1
并且在输入中出现得更早,而不是因为
True
大于
1
。证明这一点的是,如果您在
1
中切换
True
a
,您会得到
1
max(a)

虽然你没有明确询问,但我想补充一点,Python 中的

sort()
是稳定的。
0
False
比较相等,但在原始
0
中,
False
位于
a
之前,因此在
a.sort()
之后,
0
排在
False
之前。同样的道理为什么
True
出现在
1
之前。

© www.soinside.com 2019 - 2024. All rights reserved.