Операции с коллекциями python

Модуль collections

Python 3 логотип

Модуль 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-программистов

Источник

Читайте также:  Ссылки
Оцените статью