Тюпл (tuple): неизменяемая коллекция, синтаксис, методы, конкатенация
less_13__tuple__sequence_assignment__packing_unpacking__enumerate/theory_01__tuple.md
Определяет тюпл как «неизменяемый список», разбирает синтаксис создания (с запятой для одного элемента, обязательными скобками для пустого тюпла, без скобок для нескольких значений через запятую) и пять базовых свойств (упорядоченность, неизменяемость, вложенность, дубли, срезы). Показывает TypeError при попытке t[0] = 10, два метода тюпла (count, index), конкатенацию и повторение по аналогии со строками, а также важную оговорку: t1 + (1) кидает TypeError, потому что (1) — не тюпл, а просто число в скобках. Завершается двумя парными «вопросами на засыпку» про тюпл со вложенным списком: что будет с тюплом, если список внутри изменить через += (мутация) против переприсвоить через = (rebind).
- tuple('abc') → ('a','b','c'), tuple(5) → TypeError
- Синтаксис: (5,) с запятой, () пустой, 1, 2, 3 без скобок
- t[0] = 10 → TypeError: tuple не поддерживает item assignment
- tuple.count(x) и tuple.index(x[, start[, end]])
- t1 + t2 — конкатенация; t1 + (1) → TypeError (1 не тюпл)
- t1 * 2 — повторение, len(t1), 3 in t1
- Вопрос 1: lst += [3] внутри тюпла — тюпл «видит» изменение
- Вопрос 2: lst = [1,2,3] (переприсвоение) — тюпл НЕ видит изменение
Показать начало файла (207 строк всего)
## Определение
**Тюпл (tuple)** — это неизменяемая (immutable) упорядоченная коллекция объектов.
(Грубо, но почти точно: **"тюпл - это неизменяемый список"**)
## `tuple()` - функция создания тюпла из коллекции
По аналогии с функцией `list()`:
```python
print(tuple('abc')) # ('a', 'b', 'c')
print(tuple(5))
# TypeError: 'int' object is not iterable
```
## Синтаксис
* Последовательность, разделённая запятыми
* Может дополнительно браться в круглые скобки `()`
* Если элемент всего один - запятая обязательна
* Если тюпл пустой - скобки обязательны
* Записывается через круглые скобки `()`
* Может содержать элементы разных типов и повторяющиеся элементы
* Поддерживает индексацию и слайсинг (срезы)
Пример:
```python
# пустой тюпл
t0 = ()
print(t0) # ()
t1 = tuple()
print(t1) # ()
# один элемент (запятая обязательна!)
t2 = (5,)
print(t2) # (5,)
# без скобок
t3 = 1, 2, 3
print(t3) # (1, 2, 3)
# со скобками
t4 = ("a", "b", "c")
print(t4) # ('a', 'b', 'c')
# элементы разных типов
t5 = 1, "hello", 3.14, True, (1,)
print(t5) # (1, 'hello', 3.14, True, (1,))
```
---
## Основные свойства тюпла
1. **Упорядоченность** — элементы имеют фиксированный порядок.
…