什么是__lt__实际上为列表做什么

时间:2016-05-17 22:38:45

标签: python python-3.x operator-overloading

假设我有两个列表,并运行以下命令

>>> s = [1, 2, 3]
>>> t = [1, 2, 4]
>>> s > t
False
>>> s < t
True

但是如果我要运行以下命令

>>> s = [1, 2, 3]
>>> t = [1, 1, 4]
>>> s > t
True
>>> s < t
False

不得不承认,我对PY3代码库不太熟悉。 __lt__, __le__, __gt__, __ge__, __ne__, __eq__方法究竟发生了什么?

2 个答案:

答案 0 :(得分:6)

比较为lexicographical。如果您阅读了该定义,您将了解所有内容。

按顺序迭代元素对,第一个非相等对确定排序的获胜者。

答案 1 :(得分:1)

天真地比较它们,即逐个元素。 4> 3,但是2> 1。