сравнивая два неравных кортежа и находя, что больше и меньше - PullRequest
0 голосов
/ 18 октября 2018

Я работаю над следующим кодом Python, и результат не соответствует моим ожиданиям.Я сравниваю соответствующие значения, используя лексикографический метод, чтобы выяснить, какой кортеж больше, который, я думаю, используется при сравнении кортежей, и я не думаю, что длина кортежей сравнивается во время сравнения в соответствии с официальной документацией кортежей.

a=(5,5,12,6)
b=(5,5,12)
if (a>b):
    print("a is greater")
elif (a==b):
    print("both the tuples are equal")
else:
    print("b is greater")

Вывод, полученный из программы: a больше

Ожидаемый вывод: оба набора равны

Пожалуйста, помогите мне понять, как он генерирует этот вывод.Как проводится сравнение и как здесь применяется лексикографический метод?

1 Ответ

0 голосов
/ 18 октября 2018

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

Если не равны, последовательности упорядочиваются так же, как их первые отличающиеся элементы.Например, cmp([1,2,x], [1,2,y]) возвращает то же самое, что и cmp(x,y).Если соответствующий элемент не существует, более короткая последовательность считается меньшей (например, [1,2] < [1,2,3] returns True).

Примечание 1: , что < и > не означают " меньше чем"и" больше чем", но" до"и" после": так (0,1)" перед " (1, 0) .

Примечание 2: кортежи не должны рассматриваться как координаты вn-мерное пространство![то есть (x, y) и (x1, y1) не являются точками в декартовом плане xOy] ... ммм, это довольно бесполезное примечание ...

Примечание 3: в отношениивопрос Python 2 сравнение кортежей: не думайте, что кортеж "больше" другого, только если какой-либо элемент первого больше, чем соответствующий элемент во втором

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...