>>>list1,list2 = [123,'xyz'],[456,'abc'] >>>cmp(list1,list2) -1 >>>cmp(list2,list1) >>>1 >>>list3 = list2 + [789] >>>list3 [456,'abc',789] >>>cmp(list2,list3) -1
当我们在比较list1和list2时,list1和list2进行逐项比较,直到不相等的情况出现,或者到达较短的一个序列的末尾。
在这种情况下,长的序列被认为是"较大"的,这就是为什么上面的list2<list3的原因。元组类型比较也是用这种算法
对两个列表的元素进行比较
1.如果比较的元素是同类型的,则比较其值,返回结果
2.如果两个元素不是同一种类型,则检查他们是否为数字
a.如果是数字,执行必要的数字强制类型转换,然后比较
b.如果有一方的元素是数字,则另一方的元素"大"(数字是"最小的")
c.否则,通过类型名字的字母顺序进行比较
3.如果有一个列表首先到达末尾,则另一个长一点的列表"大"
4.如果我们用尽了两个列表的元素且所有的元素都是相等的,那么结果就是个平局,就是说返回一个0