Почему сравнение "==" возвращает False, хотя кортеж и список содержат одинаковые значения? - PullRequest
0 голосов
/ 10 января 2020

Я попробовал следующий код:

T = ('a','b','c')
L = list(T)

print(T == L)         #Output: False

Я запустил PythonTutor для визуализации и получил:

enter image description here

Теперь понятно мне почему T is L возвращает False. Но поскольку T,L содержит одинаковые значения для каждого элемента , я не понимаю, почему сравнение == возвращает False.

1 Ответ

0 голосов
/ 10 января 2020

('a','b','c') == ['a','b','c'] возвращает значение False, поскольку сравнение между списком и кортежем всегда возвращает значение False независимо от их содержимого. Это задокументировано в https://docs.python.org/3/reference/expressions.html#value -сравнениях :

Последовательности (экземпляры кортежа, списка или диапазона) можно сравнивать только внутри каждого из их типов с ограничением, что диапазоны не поддерживают сравнение заказов. Сравнение равенства между этими типами приводит к неравенству , а сравнение порядка по этим типам вызывает ошибку TypeError.


...