2015-01-07 1 views

ответ

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, как это делает логическое И из векторизованных результатов сравнения.

+0

Таким образом, для любого реляционного оператора он пропускает исходный набор значений в последовательности до тех пор, пока не найдет неравные элементы, а затем рассмотрит эти неравные элементы для сравнения. Я прав? – user1423015

+0

Справа. Это известно как «лексикографическое сравнение». –