Рубрики
Без рубрики

Как работает сравнение кортежей в Python?

https://youtu.be/e_b8hzmetja Быстрое введение в кортежи Python состоит из 4 встроенных типов данных, которые используются для хранения коллекций данных. Эти типы данных: ListSetSictionAryTuple Tupple позволяет хранить несколько элементов в пределах одной переменной. Следовательно, это коллекция, которая заказывается и неизменна / неизменна. Кроме того, кортежи являются неоднородными, поскольку они позволяют … Как работает сравнение кортежей в Python? Подробнее “

Автор оригинала: Shubham Sayon.

Быстрое введение в кортежи

Python состоит из 4 встроенных типов данных, которые используются для хранения коллекций данных. Эти типы данных:

  • Список
  • Установленный
  • Словарь
  • Корпус

Tuple позволяет хранить несколько элементов в пределах одной переменной. Следовательно, это коллекция, которая является заказал и неизменяемый / неизменный. Кроме того, кортежи – это гетерогенный Поскольку они позволяют вам хранить элементы, которые имеют разные типы.

Синтаксис:

my_tuple = (1, 2, 3, 'Python')

Пример:

my_tuple = ("Python", "Java", 200)
print(my_tuple)

# OUTPUT : ('Python', 'Java', 200)

Для получения более подробной информации о кортежах в Python, пожалуйста, посмотрите на наш Руководство по разговору здесь Отказ Целью данной статьи является обсуждение того, как работает сравнение между двумя кормами.

Постановка проблемы

Учитывая две кортежи; Как работает сравнение между двумя корзами?

Пример:

(4, 5) < (3, 5) # Equals false

Итак, как показано в приведенном выше примере – как/почему выход False? Или как Python сравнивает эти два кортежа?

🐍 Сравнение кортежей – Python

👍 Правило большого пальца Для сравнения кортежей Python:

Tuples in Python are compared lexicographically. This means that the corresponding elements of the given tuples are compared to each other.

Следовательно, кортежи в Python сравниваются на основе их положения: первый элемент первого кортежа сравнивается с первым элементом второго кортежа. Если они не равны, то первое сравнение достаточно, чтобы вывести вывод. В противном случае рассмотрены второй элементы, затем третий и так далее, пока все соответствующие элементы обоих кортежей не сравнили.

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

  • Для двух коллекций быть « равным» :

    • Они должны быть тот же тип , (Например, [10,20] ==   (10,20) это ложь Потому что тип не то же самое).
    • Они должны иметь одинаковую длину , а также
    • Каждая пара соответствующих элементов В данных последовательностях должен быть равным Отказ
  • Кортежи поддерживают сравнение и сборники заказа и коллекции, которые сопоставление о поддержке заказывают сравнение о том же, что и их первые неравные/разные элементы.
    • Например, [10,20, A] <=   [10,20, Z] такой же, как А ). В случае, если соответствующий элемент не существует, то более короткий сбор заказывается сначала и считается меньше. (Например, [10,20] < [10,20,0] это правда ).

⚠ ️ Внимание

  • Вы не должны рассматривать кортежи как векторы в n-мерное пространство по сравнению по их длине.
  • В упорядоченных сравнениях < и > Не представляйте « меньше, чем » и « больше, чем »; Скорее они представляют « – это до » и « – после ». Таким образом, в нашем примере выше (4, 5) не до (3, 5). Следовательно, вывод – Ложь Отказ

Теперь давайте посмотрим на несколько сценариев, которые позволят дальше уточнить нашу концепцию.

➧нормальные сравнения

Давайте посмотрим на следующий фрагмент, который сравнивает два кортежи в многочисленных сценариях:

# comparing integers
print((10, 20) < (10, 25))
print((10, 20) == (10, 25))
print((10, 20) > (10, 25))
# comparing strings
print(('x', 'y') < ('x', 'z'))
# comparing list of tuples
print(([4, 5], [5, 6]) == ([4, 5], [5, 6]))

Выход:

True
False
False
True
True

Объяснение:-

  • При сравнении (10,20) и (10,25) Наблюдается, что первый элемент в обоих кортежах равен, следовательно, следующие элементы сравниваются, и это очевидно, что 20 < 25 . Это означает, что (10,20) <(10,25) Отказ
  • (‘x’, ‘y’) <(‘x’, ‘z’) это правда Поскольку, когда вы сравниваете значения ASCII второго элемента двух кортежей, то у вас есть следующий выход: ord ('y') правда
  • Точно так же, в третьем сценарии, совершенно ясно, что когда мы сравним две кортежи, содержащие аналогичные списки, выход – правда Отказ

➧ Означает неравные кортежи

Подумайте, что у вас есть пара кортежей с разными длинами. Давайте посмотрим, как это сравнение работает в следующем фрагменте:

tup1 = (10, 20, 30)
tup2 = (10, 20, 30, 40)
if tup1 > tup2:
    print(tup1, ">", tup2, "--> TRUE")
else:
    print(tup1, '<', tup2, "--> TRUE")

Выход:

(10, 20, 30) < (10, 20, 30, 40) --> TRUE

➧ Собирающиеся кортежи с гетерогенными предметами

По сравнению с двумя кортерами, которые имеют гетерогенные предметы, то есть == оператор работает нормально; Однако < и > Операторы не работают с гетерогенными типами данных.

Пример:

print(('5',1,2)==(6,1,2)) # ---> False
print(('5',1,2)>(6,1,2)) # --> TypeError: '>' not supported between instances of 'str' and 'int'

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

Пример:

tup1 = (10, 20, 30)
tup2 = ('100', 20, 30)
print(tuple(map(int, tup2)) > tup1)

Выход:

True

🎁 Бонус: Методы для сравнения двух кортежей В питоне

➧ Метод 1: Использование всех () и ZIP ()

  • Python’s Встроенный все (X. ) Функция занимает один, как аргумент х такие как список, кортеж или словарь. Это возвращает Правда Если все намеренные элементы оцениваются в Правда Использование неявного логического преобразования, в противном случае он возвращает Ложь Отказ Если утечтимый пуст, все () Возвращает Правда Потому что условие удовлетворено Для всех элементов .
  • zip () Функция принимает произвольное количество повторных документов и агрегирует их до одного илетного объекта ZIP. Он сочетает в себе i-й ценности каждого намека на кортеж в кортеж. Следовательно, если вы пройдете два поступления, каждый кортеж будет содержать два значения. Если вы проходите три поручения, каждый кортеж будет содержать три значения. Например, Zip вместе перечислены [1, 2, 3] и [4, 5, 6] к [(1,4), (2,5), (3,6)] .

Пример:

tup1 = (10, 20, 40)
tup2 = (5, 15, 25)
if all(x > y for x, y in zip(tup1, tup2)):
    print("tup1 is greater!")
else:
    print("tup2 is greater!")

Выход:

tup1 is greater!

➧ Метод 2: Использование всех () и MAP () с функцией лямбда

tup1 = (10, 20, 40)
tup2 = (5, 15, 25)
if all(map(lambda x, y: x>y,tup1, tup2)):
    print("tup1 is greater!")
else:
    print("tup2 is greater!")

Выход:

tup1 is greater!

Заключение

Я надеюсь, что эта статья помогла вам понять сравнения кортежей в Python. Пожалуйста, Подписаться и Оставайтесь настроиться Для более интересных концепций и обсуждений.

Я профессиональный Python Blogger и Content Creator. Я опубликовал многочисленные статьи и создал курсы в течение определенного периода времени. В настоящее время я работаю полный рабочий день, и у меня есть опыт в областях, таких как Python, AWS, DevOps и Networking.

Вы можете связаться со мной @:

Оригинал: “https://blog.finxter.com/how-does-tuple-comparison-work-in-python/”