Всем привет!
В этой статье мы поговорим о таком типе данных как кортеж (tuple)
Кортеж это упорядоченный набор фиксированной длины.
Кортеж записывается в круглые скобки () через запятую.
Их применяют для контейнеров, которые никогда и никем не изменятся. Например цвета RGB, годы жизни или алфавит.
Кортежи занимают меньше памяти, а так же работают быстрее, чем, например, списки.
Так же мы можем конвертировать, например, список в кортеж:
>>>data_tuple = tuple([“red”, “green”, “blue”])
Кортеж имеется свой ряд методов, но он является неизменяемым типом данных, то есть мы не можем в него что-то добавить после того как его создали, а так же нельзя удалить элемент из него, то есть нам доступны данные только для чтения.
# Создаём кортеж
>>> data = ("red", "green", "blue")
# Выведем тип переменной data
>>> print(f"Type: {type(data)}")
Вывод: Type: <class 'tuple'>
Можем получить данные из кортежа по индексу.
>>> element = data[0]
>>> print(f"Element: {element}")
Вывод: Element: red
Можем получить индекс элемента.
>>> idx = data.index("green")
>>> print(f"Index \'greeen'\: {idx}")
Вывод: Index 'greeen'\: 1
Можем перебрать кортеж в цикле FOR.
>>> for value in data:
print(f"value: {value}")
Вывод:
value: red
value: green
value: blue
Как написал ранее, любые попытке его изменить мы получим ошибки.
# Пробуем удалить
>>> del data[0]
Ошибка: TypeError: 'tuple' object doesn't support item deletion
# Пробуем изменить элемент
>>> data[0] = "1"
Ошибка: TypeError: 'tuple' object doesn't support item deletion
# Пробуем выполнить метод remove
>>> data.remove("green")
Ошибка: TypeError: 'tuple' object doesn't support item deletion
Но у кортежа есть одно преимущество связное с возвращением данных из метода, когда нам надо вернуть сразу несколько значений и использовать дальше.
>>> def employee():
name = "Борис"
surname = "Котствел"
return (name, surname)
>>> name, surname = employee()
>>> print(f"Кот: {name} {surname}")
Кот: Борис Котствел
Это очень удобно когда нам нужно получить сразу несколько результатов выполнения метода.
В заключение, напишем программу, в которой будет метод, который принимает строковую переменную ФИО кота, а метод должен разбить ФИО на 3 переменные и вернуть их, чтобы мы могли использовать их по отдельность.
>>> def splitFIO(fio_cat):
fio_list = fio_cat.split(" ")
return (fio_list)
>>> name, surname, lastname = splitFIO("Борис Котствел Мяукович")
>>> print(f"Cat name: {name}, cat surname: {surname}, cat lastname: {lastname}")
Cat name: Борис, cat surname: Котствел, cat lastname: Мяукович
Как мы видим, мы получили список элементов из строки и конвертировали его в кортеж, а дальше воспользовались преимущество кортежа на возврат сразу нескольких элементов.
Дополнительная информация по кортежам.
Если статья понравилась или была полезная, то подписывайтесь и ставьте лайки - ПОДПИСАТЬСЯ
Другие статьи канала: