问题:元组比较在Python中如何工作?
我一直在阅读Core Python编程书,作者展示了一个类似的示例:
(4, 5) < (3, 5) # Equals false
所以,我想知道为什么/为什么等于假?python如何比较这两个元组?
顺便说一句,这本书没有解释。
回答 0
比较元组的位置:将第一元组的第一项与第二元组的第一项进行比较;如果它们不相等(即第一个大于或小于第二个),则这是比较的结果,否则将考虑第二个,然后是第三个,依此类推。
请参阅常见序列操作:
相同类型的序列也支持比较。特别是,通过比较相应的元素按字典顺序比较了元组和列表。这意味着要比较相等,每个元素必须比较相等,并且两个序列必须具有相同的类型并且具有相同的长度。
还可以进行值比较以获取更多详细信息:
内置集合之间的词法比较如下:
- 为了使两个集合比较相等,它们必须是同一类型,具有相同的长度,并且每对对应的元素必须比较相等(例如,
[1,2] == (1,2)
由于类型不同为false)。- 支持顺序比较的集合的排序与其第一个不相等元素相同(例如,
[1,2,x] <= [1,2,y]
具有与相同的值x <= y
)。如果不存在相应的元素,则将对较短的集合进行排序(例如,[1,2] < [1,2,3]
为true)。
如果不相等,则序列与它们的第一个不同元素的排序相同。例如,cmp([1,2,x],[1,2,y])返回的结果与cmp(x,y)相同。如果不存在相应的元素,则较短的序列被视为较小的序列(例如[1,2] <[1,2,3]返回True)。
注1:<
及>
并不意味着与“大于”,“小于”,而是“是之前”和“之后”:所以(0,1)“是之前”(1,0)。
注2:根据元组的长度,元组不能视为n维空间中的向量。
注意3:参考问题/programming/36911617/python-2-tuple-comparison:仅当第一个元组的任何元素大于对应的元组时,才认为该元组比另一个元组“更大”一秒。
回答 1
在Python文档做解释。
使用对应元素的比较,按字典顺序比较元组和列表。这意味着要比较相等,每个元素必须比较相等,并且两个序列必须具有相同的类型并且长度相同。
回答 2
在Python 2.5的文档解释了它做好。
使用对应元素的比较,按字典顺序比较元组和列表。这意味着要比较相等,每个元素必须比较相等,并且两个序列必须具有相同的类型并且具有相同的长度。
如果不相等,则序列与它们的第一个不同元素的排序相同。例如,cmp([1,2,x],[1,2,y])返回的结果与cmp(x,y)相同。如果相应的元素不存在,则较短的序列首先被排序(例如[1,2] <[1,2,3])。
不幸的是,该页面似乎在文档的最新版本中消失了。
回答 3
a = ('A','B','C') # see it as the string "ABC"
b = ('A','B','D')
A转换为其对应的ASCII ord('A') #65
与其他元素相同的
因此,
>> a>b # True
您可以将其视为字符串之间的比较(确实如此)
整数也是如此。
x = (1,2,2) # see it the string "123"
y = (1,2,3)
x > y # False
因为(1不大于1,移至下一个,2不大于2,移至下一个2小于三-按字典顺序-)
上面的答案中提到了关键点
认为它是一个元素,在另一个字母前不是一个元素大于一个元素,在这种情况下,将所有元组元素视为一个字符串。