小编典典

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

python

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

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

这似乎有点奇怪,但我想True如果所有list_a元素都大于,它将返回list_b,如果每个元素相等或list_b元素大于则返回False
list_a。所以我测试了它:

>>> 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实际在做什么?看来它返回的结果偏向于第一个列表,其中最左边的元素大于相应的元素?


阅读 177

收藏
2020-12-20

共1个答案

小编典典

比较序列和其它类型在Python教程:

比较使用字典顺序:首先比较前两个项目,如果它们不同,则确定比较的结果;如果它们相等,则比较下两个项目,依此类推,直到用尽任何一个序列。

另请参阅Wikipedia有关词典顺序的文章。

2020-12-20