ПРЕДПОСЫЛКИ
Я пытался выяснить, почему мой ИИ совершил какие-то сумасшедшие шаги, и я проследил проблему до следующего поведения при использовании Python 2.7.2
>>> print [2]>[1]
True
>>> print (2,)>(1,)
True
>>> print [2]>(1,)
False (WHY?)
>>> print [2]<[1]
False
>>> print (2,)<(1,)
False
>>> print [2]<(1,)
True (WHY?)
Кажется, что они ведут себя так, как будто списки всегда меньше кортежей.
Это не то, что я ожидал от документации
Кортежи и списки сравниваются лексикографически, используя сравнение соответствующих элементов. Это означает, что для сравнения равных, каждый элемент должны сравниваться равными, и две последовательности должны быть одного типа и имеют одинаковую длину.
Если не равно, последовательности упорядочиваются так же, как и их первые различные элементы. Например, cmp ([1,2, x], [1,2, y]) возвращает то же, что и cmp (x, y). Если соответствующий элемент не существует, сначала упорядочена более короткая последовательность (например, [1,2] < [1,2,3]).
Вопрос
Что здесь происходит? Мне разрешено сравнивать кортежи и списки - или, может быть, мне разрешено сравнивать один и тот же тип с самим собой?