【发布时间】:2025-11-28 13:50:01
【问题描述】:
我尝试了 2000000
但是为什么 (0, 1, 2000000)
【问题讨论】:
标签: python-2.7 comparison tuples
我尝试了 2000000
但是为什么 (0, 1, 2000000)
【问题讨论】:
标签: python-2.7 comparison tuples
来自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,因为它正在对矢量化比较结果进行逻辑与。
【讨论】: