Создание
| Синтаксис | Что создаёт | Пример результата |
|---|---|---|
() | Пустой кортеж | () |
(1, 2, 3) | Кортеж из нескольких элементов | (1, 2, 3) |
(5,) | Кортеж из одного элемента | (5,) |
1, 2, 3 | Упаковка значений в кортеж | (1, 2, 3) |
tuple([1, 2]) | Преобразование коллекции | (1, 2) |
Доступ и операции
| Операция | Описание | Пример | Результат |
|---|---|---|---|
items[i] | Элемент по индексу | (10, 20, 30)[1] | 20 |
items[-1] | Последний элемент | (10, 20, 30)[-1] | 30 |
items[start:end] | Срез | (1, 2, 3, 4)[1:3] | (2, 3) |
a + b | Конкатенация | (1, 2) + (3,) | (1, 2, 3) |
items * n | Повторение | ("ha",) * 3 | ("ha", "ha", "ha") |
x in items | Проверка наличия | 20 in (10, 20) | True |
len(items) | Длина | len((1, 2, 3)) | 3 |
Циклы и распаковка
| Конструкция | Когда использовать | Пример |
|---|---|---|
for item in items | Нужны только значения | for value in (10, 20): print(value) |
for i, item in enumerate(items) | Нужны индекс и значение | for i, name in enumerate(names): ... |
a, b = pair | В кортеже ровно два элемента | x, y = (10, 20) |
a, *rest = items | Нужно забрать первый элемент и остаток | first, *other = (1, 2, 3) |
print(*items) | Передать элементы отдельно | print(*(1, 2, 3)) |
Методы tuple
| Метод | Описание | Пример | Результат |
|---|---|---|---|
items.count(value) | Считает количество вхождений | (1, 2, 2).count(2) | 2 |
items.index(value) | Индекс первого вхождения | (10, 20, 20).index(20) | 1 |
items.index(value, start) | Поиск с позиции start | (10, 20, 20).index(20, 2) | 2 |
Частые исключения
| Ситуация | Исключение | Как избежать |
|---|---|---|
| Изменение элемента | TypeError | Создайте новый кортеж или используйте список |
| Индекс вне диапазона | IndexError | Проверьте len() или перебирайте через for |
index() не нашёл значение | ValueError | Сначала проверьте value in items |
| Неверная распаковка | ValueError | Согласуйте количество переменных или используйте *rest |