__MagicPower
Do one thing and do it best!

导航

 
>>>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

 

posted on 2015-12-03 09:39  __MagicPower  阅读(218)  评论(0编辑  收藏  举报