> For the complete documentation index, see [llms.txt](https://opu.gitbook.io/101/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://opu.gitbook.io/101/sprint-1.-bazovye-znaniya-i-osnovy-programmirovaniya/2.-osnovy-python/kortezhi.md).

# Кортежи

**Кортеж** - это последовательность, которая очень напоминает список. Главная разница между кортежами и списками состоит в том, что кортежи являются неизменяемыми последовательностями. Это означает, что после того как кортеж создан, его невозможно изменить.

Элементы кортежа заключаются в круглые скобки

```python
tpl = (1, 2, 3, 4, 5)
print(tpl)

(1, 2, 3, 4, 5)
```

Кортежи можно обходить с помощью циклов, а также они поддерживают индексацию

```python
tpl = (1, 2, 3, 4, 5)

for i in tpl:
    print(i)

    
for index in range(len(tpl)):
    print(tpl[index])
```

По сути, кортежи поддерживают все те же операции, что и списки, за исключением тех, которые изменяют содержимое списка. Кортежи поддерживают следующие операции:

* доступ к элементу по индексу (только для получения значений элементов);
* различные функции, в частности `index()`;
* встроенные функции, в частности `len()`, `min()` и `max()`;
* срезы;
* оператор `in`;
* операторы + и \*;

Кортежи не поддерживают такие методы как `append()`, `remove()`, `insert()`, `reverse()` и `sort()`.

#### Зачем нужны кортежи?

Если единственным различием между списками и кортежами является их способность изменять свои значения, то можно задаться вопросом: зачем нужны кортежи?

Одной из причин, почему существуют кортежи, является производительность. Обработка кортежа выполняется быстрее, чем обработка списка, и поэтому кортежи - это хороший вариант, когда обрабатывается большой объем данных, и эти данные не будут изменяться. Еще одна причина состоит в том, что кортежи безопасны. Поскольку содержимое кортежа изменять нельзя, в нем можно хранить данные, оставаясь в уверенности, что они не будут случайно или каким-либо иным образом изменены в программе.

Кроме того, в Python существуют определенные операции, которые требуют применения кортежа. По мере освоения Python, мы будем чаще сталкиваться с кортежами.

#### Преобразование между списками и кортежами

Встроенная функция `list()` может применяться для преобразования кортежа в список, а встроенная функция `tuple()` - для преобразования списка в кортеж.

```python
tpl = (1, 2, 3, 4, 5)
print(type(tpl)) # <class 'tuple'>

lst = list(tpl)
print(type(lst)) # <class 'list'>

tpl2 = tuple(lst)
print(type(tpl2)) # <class 'tuple'>
```
