Модуль collections
Модуль collections — предоставляет специализированные типы данных, на основе словарей, кортежей, множеств, списков.
Первым рассматриваемым типом данных будет Counter.
collections.Counter
collections.Counter — вид словаря, который позволяет нам считать количество неизменяемых объектов (в большинстве случаев, строк). Пример:
) Но возможности Counter на этом не заканчиваются. У него есть несколько специальных методов:
elements() — возвращает список элементов в лексикографическом порядке.
most_common([n]) — возвращает n наиболее часто встречающихся элементов, в порядке убывания встречаемости. Если n не указано, возвращаются все элементы.
subtract([iterable-or-mapping]) — вычитание
Наиболее часто употребляемые шаблоны для работы с Counter:
- sum(c.values()) — общее количество.
- c.clear() — очистить счётчик.
- list(c) — список уникальных элементов.
- set(c) — преобразовать в множество.
- dict(c) — преобразовать в словарь.
- c.most_common()[:-n:-1] — n наименее часто встречающихся элементов.
- c += Counter() — удалить элементы, встречающиеся менее одного раза.
Counter также поддерживает сложение, вычитание, пересечение и объединение:
Следующими на очереди у нас очереди (deque)
collections.deque
collections.deque(iterable, [maxlen]) — создаёт очередь из итерируемого объекта с максимальной длиной maxlen. Очереди очень похожи на списки, за исключением того, что добавлять и удалять элементы можно либо справа, либо слева.
Методы, определённые в deque:
append(x) — добавляет x в конец.
appendleft(x) — добавляет x в начало.
clear() — очищает очередь.
count(x) — количество элементов, равных x.
extend(iterable) — добавляет в конец все элементы iterable.
extendleft(iterable) — добавляет в начало все элементы iterable (начиная с последнего элемента iterable).
pop() — удаляет и возвращает последний элемент очереди.
popleft() — удаляет и возвращает первый элемент очереди.
remove(value) — удаляет первое вхождение value.
reverse() — разворачивает очередь.
rotate(n) — последовательно переносит n элементов из начала в конец (если n отрицательно, то с конца в начало).
collections.defaultdict
collections.defaultdict ничем не отличается от обычного словаря за исключением того, что по умолчанию всегда вызывается функция, возвращающая значение:
collections.OrderedDict
collections.OrderedDict — ещё один похожий на словарь объект, но он помнит порядок, в котором ему были даны ключи. Методы:
popitem(last=True) — удаляет последний элемент если last=True, и первый, если last=False.
move_to_end(key, last=True) — добавляет ключ в конец если last=True, и в начало, если last=False.
collections.namedtuple()
Класс collections.namedtuple позволяет создать тип данных, ведущий себя как кортеж, с тем дополнением, что каждому элементу присваивается имя, по которому можно в дальнейшем получать доступ:
Для вставки кода на Python в комментарий заключайте его в теги
- Книги о Python
- GUI (графический интерфейс пользователя)
- Курсы Python
- Модули
- Новости мира Python
- NumPy
- Обработка данных
- Основы программирования
- Примеры программ
- Типы данных в Python
- Видео
- Python для Web
- Работа для Python-программистов