Операции сравнения для списков
Для списков существуют особые операторы сравнивания:
оператор in(not in) оценивает, входит ли заданный элемент в последовательность;
оператор is(is not) применяется для изменяемых последовательностей и определяет, действительно ли две последовательности указывают на одну и ту же область памяти(то есть являются идентичными).
Результат сравнения может быть присвоен переменной логического типа(принимает значения true и false). В отличие от языка Си, в Python не допускаивается присваивание при сравнении, что исключает ошибку, распространённую в языке Си и связанную с употреблением =, вместо ==.
Сравнение списков.
Сравнение списков несколько отличается от сравнения простых числовых значений. Во-первых, списки должны быть одинакового типа. Во-вторых сравнение идёт в лексикографическом порядке, т.е оцениваются вначале первые элементы последовательностей, если они не равны, то далее возвращается результат(>;<;!=), иначе оценивается следующая пара элементов. Последовательности будут равны только в том случае, если все их элементы будут соответственно равны. Кроме этого, более длинная последовательность будет всегда больше более короткой.Строки сравниваются, учитывая порядок символов в строках в таблице ASCII. Приведём примеры сравнения последовательностей:
(1, 2, 3) < (1, 2, 4)
[1, 2, 3] < [1, 2, 4]
'ABC' < 'C' < 'Pascal' < 'Python'
(1, 2, 3, 4) < (1, 2, 4)
(1, 2) < (1, 2, -1)
(1, 2, 3) == (1.0, 2.0, 3.0)
2, ('aa', 'ab')) < (1, 2, ('abc', 'a'), 4)
При этом, допускается
сравнивание элементов различного типа(хотя по-моему это сильно усложняет понимание
программы), при этом строка всегда больше списка, константный список больше
строки и.т.д. Различные числовые типы сравниваются путём приведения их к типу с
точкой.