Автор оригинала: 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/”