为什么声明[1,2]<;[2,1]在python中计算为True

为什么声明[1,2]<;[2,1]在python中计算为True,python,Python,我最近开始学习python编程语言,在学习过程中遇到以下语句: [1,2]>[1,2]>[1,2]==1,2]#1==1和2==2 真的 >>> [1, 2][0] < [2, 1][0] # 1 < 2 真的 >>> [1, 2][1] > [2, 1][1] # 2 > 1 真的 更多关于: 序列对象可以与具有相同序列类型的其他对象进行比较。比较使用字典顺序:首先比较前两项,如果它们不同,则决定比较的结果;如果它们相等,则比较下两个项目,依此类推,直到其中一个序列用尽。如果要比较的两个项目

我最近开始学习python编程语言,在学习过程中遇到以下语句:

[1,2]<[2,1]评估 真的


我似乎没有弄清楚python是如何在内部进行比较的。

我肯定这在某些地方是重复的,但是当您比较列表时,比较是在进行的。Python首先比较1和2,即每个列表的第一个元素。这是正确的,因此右列表大于左列表。

在每个
列表中逐项进行比较:

>>> [1, 2] < [2, 1] # 1 < 2: because the first two items differ, comparison ends here
True
>>> [1, 2] == [1, 2] # 1 == 1 and 2 == 2
True
>>> [1, 2][0] < [2, 1][0] # 1 < 2
True
>>> [1, 2][1] > [2, 1][1] # 2 > 1
True
>>[1,2]<[2,1]#1<2:由于前两项不同,比较到此结束
真的
>>>[1,2]==1,2]#1==1和2==2
真的
>>> [1, 2][0] < [2, 1][0] # 1 < 2
真的
>>> [1, 2][1] > [2, 1][1] # 2 > 1
真的
更多关于:

序列对象可以与具有相同序列类型的其他对象进行比较。比较使用字典顺序:首先比较前两项,如果它们不同,则决定比较的结果;如果它们相等,则比较下两个项目,依此类推,直到其中一个序列用尽。如果要比较的两个项目本身是同一类型的序列,则会递归地进行词典比较。如果两个序列的所有项目比较相等,则认为序列相等


比较是通过
方法的列表版本完成的。类可以定义排序方法。数字,列表可以,字典不能。相关文档部分:您的第一行注释有误导性,因为结果是比较
True
,因为列表中的第一个元素独立于其余元素。@MaxPowers,agree:)编辑了注释。