Поведение сравнения между int и кортежем - PullRequest
0 голосов
/ 16 января 2019

Почему-то

999 < (0, 6, 7, 8)

Оценивается как True

На самом деле все кортежи кажутся больше всех целых.

Согласно документам ,

Экземпляры tuple или list можно сравнивать только внутри каждого из их типов.

Есть ли документация для этого поведения? Есть ли какое-то неявное приведение в исполнение?

1 Ответ

0 голосов
/ 16 января 2019

Согласно документации, которую вы связали, когда речь идет о сравнении кортежей с другими типами:

сравнение порядка по этим типам дает произвольный порядок.

Итак, похоже, что это поведение не определено в Python 2 (поправьте меня, если я ошибаюсь). Выполнение этого же сравнения в Python 3 дает следующую ошибку:

Traceback (most recent call last):
  File "main.py", line 1, in <module>
    print(999 < (0, 6, 7, 8))
TypeError: '<' not supported between instances of 'int' and 'tuple'
...