Python不等式运算符; 比较清单

Sta*_*ool 5 python inequalities

在使用不等式运算符比较列表时,无法理解Python行为.这是使用python3命令行解释器的片段:

>>> [8] < [7]
False
>>> [8] < [9]
True
>>> [8, 6] < [9]
True
>>> [8, 6] < [9, 7]     
True                    # So far so good
>>> [8, 6] < [9, 5]     
True                    # Huh?
Run Code Online (Sandbox Code Playgroud)

所以,显然Python不只是通过并行索引.我确实找到了一些信息,说在这种情况下,Python按字典顺序排列列表,我猜这是按字母顺序排列的.

因此,我认为列表可能会被排序,然后通过并行进行比较,但以下示例证明了这一点:

>>> [1, 2, 3] < [3, 2, 1]
True
Run Code Online (Sandbox Code Playgroud)

我的猜测是内部比较是[1,2,3] <[1,2,3],它应该返回False,因为1 <1是假,2 <2是假等等.

任何帮助表示赞赏.

Jue*_*gen 5

Python 所做的是,并行遍历列表并比较相同索引的元素。第一次遇到不相等的元素时,它返回此结果。

比较单词时是一样的:

"Peter" > "Peer"
Run Code Online (Sandbox Code Playgroud)

前两个字母相同,第三个字母不同,给出结果。这(对于列表)与纸质词典中使用的技术相同,只是使用列表元素而不是字符。

附加信息:(如 Padraic Cunningham 建议的那样):当一个列表较短且所有元素达到较短列表的大小且相同时,较长的列表被认为较大。这也与普通(纸质)词典相同。


wvd*_*vdz 2

这实际上很有道理。

比较的完成方式与按字典顺序对单词进行排序类似。毕竟,单词也是列表:字符列表。

您首先考虑第一项。如果其中一个较小,则整个序列较小,如果它们相等,则移至第二项,依此类推。

显然,“86”位于“95”之前,正如“az”位于“bc”之前,“100”位于“90”之前。

更多这里