如何理解`3

时间:2014-08-27 17:26:37

标签: python comparison

我不知道在哪里可以找到解释以下内容的参考资料

>>> 3<range(3)
True
>>> [1,2]<range(3)
False
>>> [1]<range(3)
False
>>> [4]<range(3)
False
>>> [4,1,2,3]<range(3)
False

谢谢!

1 个答案:

答案 0 :(得分:3)

在Python 2中,range()生成一个列表对象。第一个测试比较了两种不同的类型,此时numbers always come before other types

>>> range(3)
[0, 1, 2]
>>> 3 < []
True

其余的只是将列表与[0, 1, 2]进行比较;列表按字典顺序进行比较,0低于所有其他测试中的任何第一个值。

您的初始值应低于0:

>>> [-1] < range(3)
True

或者,如果相等,则下一个值应低于1:

>>> [0, 0] < range(3)
True

请参阅表达式文档的Comparisons section

  

使用相应元素的比较,按字典顺序比较元组和列表。这意味着要比较相等,每个元素必须比较相等,并且两个序列必须是相同的类型并具有相同的长度。