Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Industrial programming >> Python

Освоение кортежей (tuples) в Python: упаковка, распаковка, сравнение, срезы и ключи словаря

Понимание сопоставления кортежей в Python

Сопоставление кортежей группирует кортежи, сравнивая указанный элемент, обычно второй. Обычный паттерн — использовать словарь с элементом кортежа как ключом. Кроме того, можно строить новые кортежи из срезов существующих.

Основы синтаксиса кортежей

Определите кортеж через значения, разделённые запятыми, в скобках:

tup = ('Jan', 'Feb', 'Mar')

Пустые кортежи: tup1 = ().

Для единственного значения нужна завершающая запятая: tup1 = (50,). Индексы начинаются с 0; кортежи поддерживают конкатенацию и срезы.

Присваивание кортежей

Python позволяет одновременное присваивание нескольких переменных через кортеж. Удобно для распаковки структурированных данных.

Пример:

tup1 = ('Robert', 'Carlos', '1965', 'Terminator 1995', 'Actor', 'Florida')
tup2 = (1, 2, 3, 4, 5, 6, 7)
print(tup1[0]) # Robert
print(tup2[1:4]) # (2, 3, 4)

Упаковка и распаковка

«Упаковка» помещает значения в новый кортеж; «распаковка» извлекает их обратно в переменные.

x = ('Guru99', 20, 'Education')
(company, emp, profile) = x
print(company) # Guru99
print(emp) # 20
print(profile) # Education

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

Операторы сравнения (<, >, == и др.) работают лексикографически: первый отличающийся элемент определяет результат.

# Случай 1
a = (5, 6)
b = (1, 4)
if a > b:
    print('a is bigger')
else:
    print('b is bigger')

Аналогично для других случаев: если первые элементы равны, сравнение продолжается со следующим элементом.

Использование кортежей как ключей словаря

Так как кортежи хешируемы, они могут служить ключами словаря, в отличие от списков.

directory = {('last', 'first'): '555-1234'}
for last, first in directory:
    print(first, last, directory[(last, first)])

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

a = {'x': 100, 'y': 200}
b = list(a.items())
print(b) # [('x', 100), ('y', 200)]

Удаление кортежей

Кортежи неизменяемы; нельзя удалить отдельные элементы. Однако можно удалить весь объект кортежа оператором del.

Срезы кортежей

Синтаксис срезов работает для кортежей так же, как для списков:

x = ('a', 'b', 'c', 'd', 'e')
print(x[2:4]) # ('c', 'd')

Встроенные функции для кортежей

Кортежи отлично работают с функциями all(), any(), enumerate(), max(), min(), sorted(), len(), tuple().

Преимущества кортежей над списками

Краткое резюме

Python

  1. Освоение типов данных в Python: практическое руководство
  2. Мастерство операторов Python: Полное руководство
  3. Оператор pass в Python: практическое руководство
  4. Аргументы функций в Python: позиционные, именованные и параметры по умолчанию
  5. Словари в Python: создание, манипуляции и продвинутые техники
  6. Итераторы в Python: как они работают и как создать свои
  7. Замыкания в Python: как вложенные функции захватывают переменные
  8. Модуль datetime в Python: практическое руководство по датам, времени и часовым поясам
  9. Освоение кортежей (tuples) в Python: упаковка, распаковка, сравнение, срезы и ключи словаря
  10. Словари Python: добавление, обновление и управление парами ключ/значение