我一直在阅读Core Python编程书,作者举了一个例子:
(4, 5) < (3, 5) # Equals false
所以,我想知道,它如何/为什么等于假?python如何比较这两个元组?
顺便说一句,书中没有解释。
元组逐个位置进行比较:第一个元组的第一项与第二个元组的第一项进行比较;如果它们不相等(即第一个大于或小于第二个),那么这就是比较的结果,否则考虑第二个项目,然后考虑第三个,依此类推。
请参阅常见的序列操作:
相同类型的序列也支持比较。特别是,元组和列表通过比较相应的元素来按字典顺序进行比较。这意味着要比较相等,每个元素必须比较相等,并且两个序列必须是相同的类型并且具有相同的长度。
还有价值比较以获取更多详细信息:
内置集合之间的字典比较工作如下: 两个集合比较相等,它们必须是相同的类型,具有相同的长度,并且每对对应的元素必须比较相等(例如,[1,2] == (1,2)因为类型不同,所以为 false)。 支持顺序比较的集合的顺序与其第一个不相等的元素相同(例如,[1,2,x] <= [1,2,y]与 具有相同的值x <= y)。如果对应的元素不存在,则先排序较短的集合(例如,[1,2] < [1,2,3]为真)。
内置集合之间的字典比较工作如下:
[1,2] == (1,2)
[1,2,x] <= [1,2,y]
x <= y
[1,2] < [1,2,3]
如果不相等,则序列的排序与其第一个不同的元素相同。例如, cmp([1,2,x], [1,2,y]) 返回与 cmp(x,y) 相同的结果。如果对应的元素不存在,则认为较短的序列更小(例如,[1,2] < [1,2,3] 返回 True)。
注 1:并不是指“小于”和“大于”,而是“在之前”和“在之后”:所以 (0, 1) “在之前”(1, 0) <。>
<
>
注意 2:元组不能被视为n 维空间中的向量,根据它们的长度进行比较。