Documentation Blog Login SignUp
Menu
Telegram Twitter Instagram Zen
  • Установка Python
    • Установка Python на Linux
    • Установка Python на Windows
  • Виртуальное окружение
    • Виртуальное окружение
  • Типы данных
    • Типы данных в Python
    • Boolean
    • Numbers(Числа)
    • Strings(Строки)
    • Lists(Списки)
    • Tuple(Кортежи)
    • Dict(Словари)
    • Set(Множества)
  • Встроенные функции
    • Встроенные функции
    • Функции преобразования типов
    • abs( )
    • input( )
    • isinstance( )
    • len( )
    • range( )
    • sorted( )
    • type( )
  • Оператор if
    • Оператор if-elif-else

Кортежи в Python

June 7, 2020 251 просмотр
Содержание #Кортежи в Python #Когда используются кортежи#Методы для работы с кортежами

 

Кортежи в Python

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

 

Кортеж имеет следующий синтаксис:

my_tuple = (1, 2, 3, 'python', 3, 2, 1)

 

Создать кортеж можно несколькими способами:

 

  • my_tuple = (1, 2, 3 )
  • my_tuple = tuple((1, 2, 3))

 

Кортеж можно создать и просто написав my_tuple = 1, .Но принято всё же использовать круглые скобки.

 

Будьте внимательны, когда создаёте кортеж с 1 элементом. Не забывайте поставить запятую после элемента, это правило создания кортежа в Python:

my_tuple = (1)
type(my_tuple)
<class 'int'>

my_tuple = (1,)
type(my_tuple)
<class 'tuple'>

 

В первом случае не поставив запятую, мы получили обычное целое число, во втором же - полноценный кортеж.

 

Когда используются кортежи в Python

Основная причина использования кортежа вместо списка, конечно безопасность хранения данных, защита от их изменения. Если хотите - защита от дурака. Например нам нужно забрать из БД данные для формирования статистики, мы точно знаем, что менять их не собираемся, здесь как раз уместно завернуть данные в кортеж для защиты от случайного изменения.

 

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

 

Держите пример:

my_list = ['python', 'is', 'awesome']
my_tuple = ('python', 'is', 'awesome')

my_list.__sizeof__()
64
my_tuple.__sizeof__()
48

 

Методы для работы с кортежами в Python

К кортежам применимы все методы списков, за исключением тех, которые изменяют объект.

 

Обратится к элементу кортежа можно по индексу, так же как и при работе со списками:

my_tuple = ('python', 'is', 'awesome')

my_tuple[1]
'is'

my_tuple[0]
'python'

my_tuple[1]
'is'

my_tuple[2]
'awesome'

 

Следовательно, можно получить и срез:

my_tuple = ('python', 'is', 'awesome')

my_tuple[0:2]
('python', 'is')

 

Но не забывайте, что добавить, удалить или изменить элемент в кортеже вы не можете:

my_tuple = ('python', 'is', 'awesome')

my_tuple[0] = 'php'
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: 'tuple' object does not support item assignment

 

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

my_tuple = ('python', 'is', 'awesome')
id(my_tuple) = 139921634998384

my_list = list(my_tuple)
my_tuple = ['python', 'is', 'awesome']
my_list.append(' and so useful')
my_list = ['python', 'is', 'awesome', ' and so useful']

my_tuple = tuple(my_list)
my_tuple = ('python', 'is', 'awesome', ' and so useful')
id(my_tuple) = 139921634959176

 

Деструктуризация кортежей.

Кортеж можно деструктурировать, другими словами - разобрать. Например:

my_tuple = ('bmw', 3.8, 'Anna') 
car, fl_num, name = my_tuple

car = 'bmw'
fl_num = 3.8
name = 'Anna'