是否定义了Python的bool排序?

时间:2012-11-13 00:12:20

标签: python sorting undefined-behavior

在Python中很好地定义了True和False的顺序,还是留作实现细节?

从控制台,我看到True之前的False排序......但我不知道这是否是我应该依赖的行为。

(我确定有一些关于此的Python文档,但我找不到它......)

2 个答案:

答案 0 :(得分:14)

http://docs.python.org/2/reference/datamodel.html#the-standard-type-hierarchy

  

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

这告诉我,python语言需要False < TrueFalse == 0True == 1True != 2

同样的措辞也保留在Python 3中。

答案 1 :(得分:1)

我们可以证明可以使用Python REPL对bool进行排序,其中False是较低的值:

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