Опубликован: 23.01.2024 65
В Python имеется очень полезный встроенный модуль collections
, который наделяет стандартные контейнерные типы данных новыми функциями и методами.
Именованные кортежи namedtuple()
модуля collections
присваивают имя каждому элементу в кортеже и тем самым делают возможным обращение к значению элемента по имени, а не по индексу. Это особенно удобно при большом количестве элементов в кортеже.
По сути, именованные кортежи создают неизменяемый словарь, только более удобный и легко читаемый.
Синтаксис: ntuple = collections.namedtuple(typename, field_names [, ...])
typename
- имя именованного кортежа;field_names
- имена элементов кортежа (это может быть последовательность строк, разделенных пробелом, или список строк).from collections import namedtuple
# создание именованного кортежа michail
Person = namedtuple("Person", "name age height")
michail = Person("Michail", 35, 1.75)
michail.age
35
# создание двух именованных кортежей apple и orange
fruit = namedtuple('fruit', 'number sort color')
apple = fruit(number=3, sort='Семеринка', color='зеленый')
orange = fruit(number=5, sort='Сумо', color='оранжевый')
# получение значений элементов кортежей через их имена
apple.sort
'Семеринка'
orange.color
'оранжевый'
Получение значения элемента в именованном кортеже осуществляется не по индексу, а по именам полей через точку .
: имя_кортежа.имя_поля
Такой синтаксис понятнее, легко читается и снижает вероятность ошибок.
В остальном именованные кортежи обладают всеми свойствами и методами простых кортежей, в том числе быстродействием и неизменяемостью.
В общем, если нужна неизменяемая структура данных для правильного решения задачи, то лучше использовать именованный кортеж вместо словаря.
Преимущества двухсторонней очереди collections.deque() над списком
Преимущества использования словаря collections.defaultdict()
Количество одинаковых элементов в списке (кортеже) или строке
Методы преобразования списка в строку и обратно
Комментариев нет.