Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/python-2.7/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 2.7 在python中,(0,1200万)<;(0,3,4)=对,为什么?_Python 2.7_Comparison_Tuples - Fatal编程技术网

Python 2.7 在python中,(0,1200万)<;(0,3,4)=对,为什么?

Python 2.7 在python中,(0,1200万)<;(0,3,4)=对,为什么?,python-2.7,comparison,tuples,Python 2.7,Comparison,Tuples,我尝试了2000000

我尝试了2000000<4和(2000000,)<(4),但返回的结果是错误的

但是为什么(0,1,2000000)<(0,3,4)返回true,即使2000000大于4

元组和列表使用对应元素的比较按字典顺序进行比较

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

因此,在
(0,1200000)<(0,3,4)
中,第一对元素匹配,因此比较第二对元素。因为1小于3,所以整件事都是
真的
,剩下的元素根本不需要计算

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

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

import numpy as np
np.all(np.array((0, 1, 2000000)) < np.array((0, 3, 4)))
将numpy导入为np
np.all(np.array((0,1200000))

这给出了<代码> false <代码>,因为它在逻辑上和向量化的比较结果。

所以,对于任何关系运算符,它跳过序列中的初始值集,直到找到不相等的元素,然后考虑这些不相等的元素进行比较。我说得对吗?对。这被称为“词典比较”