@afydoz
Вчерашний школьник.

Что сравнивается при сравнении массива с числом?

Есть массив x = [2, 3, 4, 6]

>>> x > 1
True

>>> x < 1
False


Сначала я думал, что сравниваются 2 ненулевых элемента (True > True), но тогда результат в обеих случаях был бы False
Буду благодарен, если объясните, как это работает?
  • Вопрос задан
  • 378 просмотров
Решения вопроса 1
@javedimka
Хочу сока
В питоне это называется списком, лучше уточнять.

А ответом на твой вопрос является версия Python, когда ты в Python 2 сравниваешь два не одинаковых типа данных, то они сравниваются лексикографически(так это называется?), когда два названия типа сравниваются по алфавиту, т.е. тип списка это "list", тип целого числа это "int", сравнивается первая буква каждого слова, в английском алфавите буква L идет после i, т.е. порядковый номер буквы L(12) в алфавите больше, чем порядковый номер i(9), поэтому получается, что list > int (12>9), поэтому в Python 2 список больше числа с типом int (или float, decimal, по аналогии, но при этом числовые типы int, float, decimal можно успешно сравнивать между собой.)

В Python 3 получишь ошибку:
>>> x = [2, 3, 4, 6]
>>> x > 1
Traceback (most recent call last):
  File "<pyshell#2>", line 1, in <module>
    x > 1
TypeError: unorderable types: list() > int()
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы