在python中,(0,1,2000000)< (0,3,4)=是的,为什么?

时间:2015-01-07 02:31:48

标签: python-2.7 comparison tuples

我试过2000000< 4和(2000000,)< (4,)但这些都是假的。

但为什么(0,1,2000000)<即使2000000大于4

,(0,3,4)也会返回true

1 个答案:

答案 0 :(得分:2)

来自docs

  

使用相应元素的比较,按字典顺序比较元组和列表。

     

如果不相等,则序列的排序与其第一个不同的元素相同。例如,cmp([1,2,x],[1,2,y])返回与cmp(x,y)相同的内容。

所以在(0, 1, 2000000) < (0, 3, 4)中,第一对元素匹配,因此比较第二对元素。由于1小于3,整个事件为True,其余元素根本不需要评估。

这基本上与电话簿中使用的顺序相同,只是从字符到任何类型。

如果您想快速比较所有元素,可以使用NumPy:

import numpy as np
np.all(np.array((0, 1, 2000000)) < np.array((0, 3, 4)))

这样可以False,因为它会对矢量化比较结果进行逻辑运算。