В этой статье я разбираю Кортежи в Python 3. Вы узнаете, какими свойствами обладают кортежи и как можно с ними работать.

Свойства, индексация и срезы

Я уже писал про последовательности и множества в Python 3. Кортеж — это неизменяемый список, то есть это последовательность объектов, которую нельзя изменить (можно лишь создать новый кортеж).

Кортежи в Python 3 записываются в круглых скобках, например так:

my_tuple = (1, 2, 'три')

В коде выше мы создали кортеж (1, 2, ‘три’) и связали его с переменной my_tuple. Как видите, наш кортеж хранит и числа и строки.

Изменить кортеж, то есть добавить или удалить объекты из него, мы не можем.

Кортеж, так же как и список, индексирует свои элементы:

Индексация списка в Python 3
Индексация кортежа в Python 3

Индексация позволяет обращаться к объектам по индексу (положительному или отрицательному), а также создавать срезы.

Получение некоторых свойств кортежа, обращение по индексам и создание срезов показано в примере ниже:

### Код
my_tuple = (1, 2, 'три')
print('Тип объекта - ', type(my_tuple))      # Тип объекта
print('Длина - ',len(my_tuple))              # Длина
print('Первый элемент - ', my_tuple[0])      # Обращение по индексу
print('Срез [1:4] - ', my_tuple[1:4])        # Срез от 2-ого элемента до 3-его
print('Срез [0:5:2] - ', my_tuple[0:5:2])    # Срез от 1-ого элемента до 5-ого, с шагом 2

### Исполнение
Тип объекта -  <class 'tuple'>
Длина -  3
Первый элемент -  1       
Срез [1:4] -  (2, 'три')  
Срез [0:5:2] -  (1, 'три')

Запомните, когда вы создаёте срез, то указываете от какого элемента (включительно) и до какого элемента (не включительно). Вы можете указать шаг среза, например каждый второй элемент, или каждый третий, и так далее.

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

Точно также как строки и списки, кортежи поддерживают конкатенацию и повторение:

### Код
my_tuple1 = (1, 2, 'три')
my_tuple2 = (4, 5, 'шесть')
print(my_tuple1 + my_tuple2)
print(my_tuple1 * 3)

### Исполнение
(1, 2, 'три', 4, 5, 'шесть')
(1, 2, 'три', 1, 2, 'три', 1, 2, 'три')

Также можем проверить, содержится ли элемент в кортеже:

### Код
my_tuple = (1, 2, 'три')
print(1 in my_tuple)
print(5 in my_tuple)

### Исполнение
True
False

И можем подсчитать количество определённых элементов:

### Код
my_tuple = (1, 2, 5, 2, 7, 1, 2, 4, 0)
print(my_tuple.count(2))

### Исполнение
3

Если нужно изменить кортеж, его обычно превращают в список, а затем уже работаю со списком:

### Код
my_tuple = (1, 2, 5, 2, 7, 1, 2, 4, 0)
my_list = list(my_tuple)
print(my_tuple)
print(my_list)

### Исполнение
(1, 2, 5, 2, 7, 1, 2, 4, 0)
[1, 2, 5, 2, 7, 1, 2, 4, 0]

Зачем же применять кортежи, если есть списки? Дело в том, что неизменяемость кортежей обеспечивает определенную степень целостности. То есть разработчик может быть уверен, что кортеж не изменится через ссылку где-то в другом месте программы. Для списков же такая гарантия отсутствует.

Итог

Немного подробнее про кортежи вы можете почитать в официальной документации. В этой статье я разобрал лишь некоторую часть свойств и методов кортежей.

Сводка
Python 3. Кортежи
Имя статьи
Python 3. Кортежи
Описание
В этой статье я разбираю Кортежи в Python 3. Вы узнаете, какими свойствами обладают кортежи и как можно с ними работать

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *