Skip to main content

Переменные типа кортеж (Tuple) в Python

Tuple Variables in Python

Что такое кортеж в Python? Кортеж в Python - это неизменяемая последовательность значений, аналогичная списку. Однако кортежи не могут быть изменены после создания, что означает, что вы не можете добавлять, удалять или изменять элементы в кортеже.

Создание Кортежа в Python

Для создания кортежа вы можете использовать круглые скобки () и разделять элементы запятыми ,.

Вот пример создания кортежа в Python с тремя элементами:

my_tuple = (1, "hello", 3.14)

Вы также можете создать пустой кортеж, используя пустые круглые скобки ():

empty_tuple = ()

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

single_tuple = (1,)

Индексы Кортежа

Вы можете получить доступ к элементам кортежа в Python с помощью индексации, так же, как в списках.

Как мы уже упоминали, индексация в Python начинается с 0. Это означает, что первый элемент в кортеже имеет индекс 0, второй элемент имеет индекс 1 и так далее. Также поддерживается отрицательная индексация, что означает, что последний элемент в кортеже имеет индекс -1, предпоследний элемент имеет индекс -2 и так далее.

Вот пример доступа к элементам кортежа с использованием индексации:

my_tuple = ('apple', 'banana', 'cherry')
print(my_tuple[0])   # Output: 'apple'
print(my_tuple[1])   # Output: 'banana'
print(my_tuple[-1])  # Output: 'cherry'

Как Добавить Элемент в Кортеж в Python

В Python кортежи являются неизменяемыми, что означает, что после их создания их элементы нельзя изменить. Однако вы можете создать новый кортеж, объединив существующие кортежи и другие элементы. Таким образом, чтобы "добавить" элемент в кортеж, вы по сути создадите новый кортеж, который включает существующие элементы вместе с новым элементом. Вот несколько способов сделать это:

Использование оператора + для создания нового кортежа:

existing_tuple = (1, 2, 3)
new_element = 4

# Concatenate the existing tuple with a new tuple containing the new element
new_tuple = existing_tuple + (new_element,)

print(new_tuple)

Использование оператора увеличенного присваивания +=:

existing_tuple = (1, 2, 3)
new_element = 4

# Use the += operator to concatenate the existing tuple with a new tuple containing the new element
existing_tuple += (new_element,)

print(existing_tuple)

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

Отсортированный Список Кортежей

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

# define a list of tuples
my_list = [(1, 2), (3, 1), (2, 4)]

# sort the list by the first element in each tuple
sorted_list = sorted(my_list, key=lambda x: x[0])

print(sorted_list) # Output: [(1, 2), (2, 4), (3, 1)]

Вы также можете отсортировать список кортежей в обратном порядке, установив аргумент reverse в True:

# define a list of tuples
my_list = [(1, 2), (3, 1), (2, 4)]

# sort the list by the second element in each tuple in reverse order
sorted_list = sorted(my_list, key=lambda x: x[1], reverse=True)

print(sorted_list) # Output: [(2, 4), (1, 2), (3, 1)]

Именованный Кортеж в Python

Именованный кортеж является подклассом встроенного типа данных кортеж, который позволяет обращаться к полям по имени, а также по позиции индекса.

Именованные кортежи создаются с использованием функции collections.namedtuple. Вот пример:

from collections import namedtuple

# create a named tuple with two fields: 'x' and 'y'
Point = namedtuple('Point', ['x', 'y'])

# create an instance of the named tuple
p = Point(1, 2)

# access fields by index
print(p[0])  # prints 1

# access fields by name
print(p.x)   # prints 1
print(p.y)   # prints 2

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

Кортеж Внутри Списка в Python

В некоторых случаях нам нужно создать список кортежей, например, для группировки связанных данных. Вы можете создать список, содержащий кортежи, используя следующий синтаксис:

my_list = [(item1, item2), (item3, item4), (item5, item6)]

Каждый кортеж в списке может содержать несколько элементов, которые могут быть любого типа данных, включая строки, числа и другие кортежи. Вот пример списка, содержащего кортежи с разными типами данных:

my_list = [("apple", 2), ("orange", 3), ("banana", 4.5), ("grape", ("red", "green"))]

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

print(my_list[0][1])   # Output: 2

Добавление Кортежа

Чтобы добавить кортеж в список в Python, вы можете использовать метод append(). Вот пример:

my_list = [(1, 2), (3, 4)]
new_tuple = (5, 6)
my_list.append(new_tuple)
print(my_list) # Output: [(1, 2), (3, 4), (5, 6)]

Пишите вместе с нами!

Вы можете внести свой вклад в статьи о Python на GitHub: создайте Fork, внесите правки и отправьте нам Pull request.

Profile picture for user almargit
Python developer, content manager.
Profile picture for user AliaksandrSumich
Aliaksandr Sumichредактор
Обновлено: 05/03/2024 - 21:53
Profile picture for user angarsky
Evgeniy Melnikovрецензент
Проверено и опубликовано