0Pricing
Python Academy · Урок

Кортежи и неизменяемость

Разберитесь в кортежах, их неизменяемости и случаях, когда им стоит предпочесть списки.

«Кортежи и неизменяемость» — бесплатный урок Python Academy на CoddyKit. Это урок 3 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Python Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Python Academy содержит 4 уроков всего.

Введение

Кортежи — это упорядоченные неизменяемые последовательности. После создания их элементы нельзя изменить.

Создание кортежей

t = (1, 2, 3) или t = 1, 2, 3 (скобки необязательны). Для кортежа из одного элемента нужна завершающая запятая: t = (1,).
t = (1, 2, 3)
singleton = (42,)
print(t, singleton)

Неизменяемость кортежей

t[0] = 99 вызывает TypeError. Кортежи нельзя изменять после создания. Это их определяющая особенность.
t = (1, 2, 3)
# t[0] = 99  # TypeError
print(t[0])

Индексация и срезы кортежей

t[0], t[-1], t[1:3] работают так же, как со списками. Кортежи поддерживают все операции чтения.
t = (10, 20, 30)
print(t[1])
print(t[:2])

Упаковка и распаковка кортежей

a, b = (1, 2) распаковывает кортеж. Также можно написать a, b = b, a, чтобы поменять переменные местами без временной переменной.
a, b = 1, 2
a, b = b, a
print(a, b)

Кортежи как ключи словаря

Поскольку кортежи хешируемы, их можно использовать как ключи словаря: coords = {(0,0): 'origin'}. Списки нельзя использовать как ключи словаря.
coords = {(0, 0): 'origin', (1, 0): 'right'}
print(coords[(0, 0)])

Кортеж или список — что выбрать

Используйте кортежи для разнородных данных с фиксированной структурой, например (name, age). Используйте списки для однородных данных переменной длины.
point = (3.0, 4.0)  # tuple: fixed structure
scores = [85, 90, 78]  # list: variable

Именованные кортежи

from collections import namedtuple; Point = namedtuple('Point', ['x','y']); p = Point(3,4); p.x даёт 3.
from collections import namedtuple
Point = namedtuple('Point', ['x', 'y'])
p = Point(3, 4)
print(p.x, p.y)

Методы кортежей

У кортежей есть только count() и index(). t.count(2) подсчитывает количество вхождений. t.index(2) возвращает первую позицию.
t = (1, 2, 2, 3)
print(t.count(2))
print(t.index(2))

Производительность кортежей

Кортежи немного быстрее списков и используют меньше памяти, поскольку Python может оптимизировать неизменяемые объекты.
import sys
print(sys.getsizeof((1,2,3)))
print(sys.getsizeof([1,2,3]))

Преобразование списка и кортежа

list(t) преобразует кортеж в список. tuple(lst) преобразует список в кортеж. Это полезно, когда Вам временно нужна изменяемость.
t = (1, 2, 3)
lst = list(t)
lst.append(4)
t2 = tuple(lst)
print(t2)

Быстрая проверка

Почему кортежи можно использовать как ключи словаря, а списки нельзя?

Итоги

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

Продолжить обучение

Отличная работа! Перейдите к следующему уроку, чтобы продолжить развивать свои навыки.

Часто задаваемые вопросы

Урок «Кортежи и неизменяемость» бесплатный?

Да — полный текст урока «Кортежи и неизменяемость» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Python Academy, подпишись на CoddyKit PRO. Курс Python Academy содержит 4 уроков всего.

Чему я научусь в уроке «Кортежи и неизменяемость»?

Разберитесь в кортежах, их неизменяемости и случаях, когда им стоит предпочесть списки. Ты практикуешь Python Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать Python Academy?

Предыдущий опыт не требуется. Python Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 3 из 4.

Сколько времени занимает урок «Кортежи и неизменяемость»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке Python Academy?

Да. Каждый урок Python Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. Создание списков и доступ к элементам
  2. Изменение списков
  3. Кортежи и неизменяемость
  4. Вложенные списки и итерация
← Назад к Python Academy