今天看了序列类型相关的比较操作.
在python核心编程(2nd)一书中6.13.1章节中, 给出了列表比较的一个准则..
个人感觉还是不很完善:
如果扫描到两个列表中当前比较元素是不可比较的, 那么返回什么??
我用的是python2.6....
对这个问题做了一些测试, 自己目前嘎绝当比较遇到上述情况时, 是使用两个列表的内存地址值来比较的..
以下代码是测试时候的i/o
>>> a = [1, 2, 3, 4] >>> b = [1, 2, 4, "3"] >>> a == b False >>> a < b True >>> a > b False >>> a, b = b, a >>> a [1, 2, 4, '3'] >>> b [1, 2, 3, 4] >>> id(a) 12643064 >>> id(b) 12752576 >>> a < b False >>> b < a True >>> a = [1, "4"] >>> b = [2] >>> a < b True >>> id(a) 12642104 >>> id(b) 12643064 >>> c = [0] >>> a < c False >>> id(c) 12752576 >>> a = [1] >>> b = ["1"] >>> a < b True >>> id(a) 12243072 >>> id(b) 12642104 >>> a = ["1"] >>> b = [1] >>> a < b False >>> id(a) 12643064 >>> id(b) 12243072 >>>