Найти в Дзене

Python. Структуры данных. Часть 7.1

Всем привет!

В этой статье мы поговорим о таком типе данных как кортеж (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: Мяукович

Как мы видим, мы получили список элементов из строки и конвертировали его в кортеж, а дальше воспользовались преимущество кортежа на возврат сразу нескольких элементов.

Дополнительная информация по кортежам.

Если статья понравилась или была полезная, то подписывайтесь и ставьте лайки - ПОДПИСАТЬСЯ

Другие статьи канала:

Изучаю язык программирования Python. Структуры данных. Часть 7
Изучаю языки програмирования22 марта 2023
Рубрика по "просьбе подписчика". Работа с XML файлом.
Изучаю языки програмирования21 марта 2023
Изучаю языка программирования Python. Основы синтаксиса. Работа с файлом. Часть 6.1
Изучаю языки програмирования21 марта 2023