Поскольку я не нашел объяснения сравнения списка / кортежа, используя, в первую очередь, «лексикографическое упорядочение», в первую очередь, это попытка объяснить это «своими словами». Во-первых, вот несколько примеров списков, которые упоминаются в объяснении ниже:
a = [1, 2, 3]
b = [1, 2, 10]
c = [1, 2, 3, 100]
d = [1, 2, 3]
e = [1, 2, 3, 4, 'a']
f = ['a', 'b', 'c']
Пара элементов в каждом индексе сравнивается по очереди. Таким образом, сравнение a
с b
приведет к сравнению 1
, 2
, сравниваемого с 2
, а 3
сравнивается с 10
.
] Сравнение пар остановится, когда либо обнаружена неравная пара элементов , либо - если списки имеют разную длину - достигнут конец более короткого списка.
Например, при сравнении a
и b
сравнения будут останавливаться, когда сравниваются 3
и 10
. При сравнении b
и c
сравнения останавливаются, когда сравниваются 10
и 3
.
Как только найдена неравная пара, общий результат является результатом сравнения неравных Предметы. Это относится к тому, являются ли списки одинаковой длины или нет - например, список b
больше, чем список c
, потому что 100
в c
никогда не входит в игру.
Например , при сравнении a
с b
общий результат будет результатом сравнения 3
с 10
. a < b -> True
, потому что 3
меньше 10
. a > b -> False
, потому что 3
не больше 10
. a == b -> False
, поскольку 3
не равно 10
.
Если один из списков короче и его N элементов равны первым N элементам более длинного списка, как в случае a
и c
, более короткий список будет считаться меньшим, чем более длинный список (поэтому a
меньше c
).
Два списка будут сравниваться как равные только , если они имеют одинаковую длину, и все пары элементов сравниваются как равные.
Примечание о типах: если элементы в паре не сопоставимы, сравнение будет неудачно с TypeError
, как обычно. Например, сравнение списка a
с f
не будет выполнено, если 1
сравнивается с 'a'
. Но также обратите внимание, что списки d
и e
можно сравнить, поскольку 'a'
в e
никогда не сравнивается ни с чем в d
.