比较两个列表使用大于或小于运算符。

21 浏览
0 Comments

比较两个列表使用大于或小于运算符。

最近我注意到一段代码直接比较了两个整数列表,如下所示:

a = [10,3,5, ...]
b = [5,4,3, ...,]
if a > b:
     ...

这看起来有点奇怪,但我猜想如果list_a的所有元素都大于list_b的元素,则返回True;如果每个元素相等或list_b的元素大于list_a的元素,则返回False。所以我进行了测试:

>>> 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到底在做什么?似乎它更倾向于返回第一个列表,其中最左边的元素大于对应位置的元素。

0