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

Python работа с кортежами

Кортеж являются неизменяемым типом данных

Определение котрежа

В круглых скобках () идет перечисление элементов

tup1 = (элемент1, элемент2, элемент3)

    Кортеж по сути это неизменяемый список. 

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

# Пишется как список только в круглых скобках.
In [584]: tup1 = (1,2,3,4)

In [585]: tup1
Out[585]: (1, 2, 3, 4)

Назначение и использование кортежа

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

# Пример сравнения выделенной памяти список vs кортеж
In [589]: import sys

In [590]: sys.getsizeof(list1)
Out[590]: 88

In [591]: sys.getsizeof(tup1)
Out[591]: 72

Использование кортежа в качестве ключа и значений для словаря

# Создадим словарь где в качестве ключей и значений используем кортеж

In [592]: topo1 = {('r1','f0/1'): ('r2','f0/2'),
     ...:          ('r3','f0/3'): ('r2','f0/4')}

# Тогда значение по ключу будет выглядеть так
In [593]: topo1 [('r1','f0/1')]
Out[593]: ('r2', 'f0/2')

Работа с элементами кортежа

Обращение к элементам

In [594]: tup1 = (1,2,3,4)

In [595]: tup1[0]
Out[595]: 1

In [596]: tup1[1]
Out[596]: 2

In [597]: tup1[-1]
Out[597]: 4

Срез

In [600]: tup1[::-1]
Out[600]: (4, 3, 2, 1)

In [601]: tup1[0:2]
Out[601]: (1, 2)

# кортеж из одного элемента
In [602]: tup1[0:1]
Out[602]: (1,)

Суммирование кортежей

In [603]: tup1 = (1,2,3,4)

In [604]: tup2 = (5,6,7)

In [605]: tup3 = tup1 +tup2

In [606]: tup3
Out[606]: (1, 2, 3, 4, 5, 6, 7)

Передача списка в кортеж tuple()

# передаем список list1 в кортеж tup1
In [586]: list1 =[1,2,3]

In [587]: tup1 = tuple(list1)

In [588]: tup1
Out[588]: (1, 2, 3)

Передача кортежа в список list()

In [607]: tup1 = (1,2,3,4)

In [608]: list1 = list(tup1)

In [609]: list1
Out[609]: [1, 2, 3, 4]

Длина кортежа len()

In [610]: list1
Out[610]: [1, 2, 3, 4]

In [611]: tup1 = (1,2,3,4)

In [612]: len(tup1)
Out[612]: 4

Последнее обновление: 2023-05-29