使用大于或小于运算符比较两个列表
我注意到最近直接比较了两个整数列表的一段代码:
a = [10,3,5, ...] b = [5,4,3, ...,] if a > b: ...
这似乎list_a
,但我想如果list_a
的所有元素都大于list_b
,那么它将返回True
,如果每个元素相等,或者list_b
的元素大于list_a
则list_a
。 所以我testing了一下:
>>> a=[3,3,3,3] >>> b=[4,4,4,4] >>> a>b False >>> b>a True
好的,这个工作。 如下所示:
>>> b = [1,1,1,1] >>> a = [1,1,1,1] >>> a>b False >>> b>a False
但是当它变得更模糊:
>>> a=[1,1,3,1] >>> b=[1,3,1,1] >>> a>b False >>> b>a True
要么:
>>> a=[1,3,1,1] >>> b=[1,1,3,3] >>> a>b True >>> b>a False
结果有点陌生。 什么是Python实际上在做什么? 看来,它返回的结果有利于第一个列表,其中最左边的元素大于相应的?
从Python教程比较序列和其他types :
比较使用词典sorting:首先比较前两个项目,如果它们不同则确定比较的结果; 如果它们相等,则比较下两项,等等,直到任何一个序列被耗尽为止。
另请参阅维基百科关于字典顺序的文章。