是Python';s布尔排序定义?

是Python';s布尔排序定义?,python,sorting,undefined-behavior,Python,Sorting,Undefined Behavior,真与假的顺序在Python中定义得很好,还是作为实现细节 从控制台上看,我看到了先假后真的排序…但我不知道这是否是我应该依赖的行为 (我肯定有一些关于这个的Python文档,但我找不到它… 布尔值:它们表示真值False和True。表示值False和True的两个对象是唯一的布尔对象。布尔类型是纯整数的子类型,在几乎所有上下文中,布尔值的行为分别类似于值0和1,但当转换为字符串时,将分别返回字符串“False”或“True” 在我看来,python语言需要False

真与假的顺序在Python中定义得很好,还是作为实现细节

从控制台上看,我看到了先假后真的排序…但我不知道这是否是我应该依赖的行为

(我肯定有一些关于这个的Python文档,但我找不到它…

布尔值:它们表示真值False和True。表示值False和True的两个对象是唯一的布尔对象。布尔类型是纯整数的子类型,在几乎所有上下文中,布尔值的行为分别类似于值0和1,但当转换为字符串时,将分别返回字符串“False”或“True”

在我看来,python语言需要
False
False==0
True==1
True!=2


中也保留了相同的措辞。

我们可以使用Python REPL显示bool是可排序的,其中
False
是较低的值:

>>> sorted([False, True, True, False, True])
[False, False, True, True, True]

为了获得额外积分,可以尝试使用布尔运算
(True+True)**-True==0.5
。@JameySharp你是一个向导吗?@rsegal我发现
sum([True,False,…])
是一个很好的方法来计算列表中真实案例的数量,之后很快就会发生上述可怕的滥用行为。@JameySharp这其实不是一个可怕的主意。这几乎就像是一个
reduce(过滤器(列表))
。嗯,别忘了:
assert-isinstance(True,int)
如果您不确定是否同意sharth的理解,请尝试将其插入解释器。您将快速验证
False
。事实上,阅读规范并在解释器中使用它总是好主意!值得注意的是,“已定义排序”基本上意味着已定义比较,这意味着如果某个值小于其他值,则将正确排序,如此处所述
False