【发布时间】:2020-06-16 10:20:24
【问题描述】:
我知道以下几点:
-
[1,2,3]<[1,2,4]是True,因为 Python 从左到右进行逐元素比较,3 < 4 -
[1,2,3]<[1,3,4]是True因为2 < 3所以 Python 甚至从不费心比较3和4
我的问题是,当我比较两个长度不等的列表时,Python 的行为有何变化?
-
[1,2,3]<[1,2,3,0]是True -
[1,2,3]<[1,2,3,4]是True
这让我相信较长的列表总是大于较短的列表。但后来:
-
[1,2,3]<[0,0,0,0]是False
谁能解释一下 Python 是如何进行这些比较的?
我的直觉是,首先尝试按元素进行比较,并且只有当两个列表中的第一个 n 元素相同(其中 n 是较短列表中的元素数)时,Python 才会考虑较长的列表要更大。如果有人可以确认这一点或阐明这种行为的原因,我将不胜感激。
【问题讨论】:
-
它会逐元素比较它们,直到其中一个用完,如果它们在那一点上相同,则较短的那个是第一个。这是正常的lexicographic ordering。
标签: python python-3.x list