我注意到最近有一段代码直接比较两个整数列表,如下所示:
a = [10,3,5, ...] b = [5,4,3, ...,] if a > b: ...
这似乎有点奇怪,但我想True如果所有list_a元素都大于,它将返回list_b,如果每个元素相等或list_b元素大于则返回False list_a。所以我测试了它:
True
list_a
list_b
>>> 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教程:
比较使用字典顺序:首先比较前两个项目,如果它们不同,则确定比较的结果;如果它们相等,则比较下两个项目,依此类推,直到用尽任何一个序列。
另请参阅Wikipedia有关词典顺序的文章。