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

2.6. Кортежи

Кортежи служат для хранения нескольких объектов вместе. Их можно рассматривать как аналог списков, но без такой обширной функциональности, которую предоставляет класс списка. Одна из важнейших особенностей кортежей заключается в том, что они неизменяемы, так же, как и строки. Т.е. модифицировать кортежи невозможно.

Пропустите! Едет кортеж!

Кортежи обозначаются указанием элементов, разделённых запятыми и заключенными в круглые скобки (в принципе их можно опустить).

tup = (1,2)

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

Пример использования:

zoo = ('питон', 'слон', 'пингвин')
print('Количество животных в зоопарке -', len(zoo))
new_zoo = ('обезьяна', 'верблюд', zoo)
print('Все животные в новом зоопарке:', new_zoo)

Что еще можно сделать с "экскортом"?

Ну, во-первых присвивание переменным содержимого кортежа, вроде распаковки:

point = (2,3)
x,y = point
print('Point x={}, y={}'.format(x,y))

Сложение и сравнение попробуете самостоятельно. Теперь приведём список встроенных функций:

  1. tuple(последовательность). Создаёт кортеж из другой последовательности, например списка.
    lst = [1,2,3]
    tup = tuple(lst)
    
  2. len(кортеж) - определяет длину.
  3. max(),min(),sum() - определяет максимальный, минимальный элемент и сумму значений кортежа.

Пример функции, которая возвращает кортеж - divmod(x, y ). Результат кортеж размера 2 вида ‘((x-x%y)/y, x%y)’. То есть содержит частное и остаток от деления. Пример:

q, r = divmod(355,113)
print('quotient={}, remainder={}'.format(q,r))

Краткое содержание

- Кортеж - неизменяемый список
- Для создания кортежа используйте круглые скобки. ```(1,2,3)```
- Распаковывайте значение кортежа в отдельные переменные в левой части ```x,y,z = (1,2,3)```
- Некоторые методы строк работают и на кортежи (длина, доступ по индексу, минимальные/максимальные значения)

Самостоятельная работа

Попробуйте создать кортеж, который соответвует RGB-представлению цветов. Выполните ряд операций по распаковке кортежа, доступу по индексу, превращению в список и обратно.
Затем переходите к заданиям.