Что нужно знать о библиотеке collections в Python

preview_player
Показать описание
Поговорим о коллекциях, что лежат в одноименном модуле и могут нам пригодиться для специфических задач

1) OrderedDict - упорядоченный словарь, несмотря на мнение многих, он все еще актуален, оптимизирован для работы с порядком элементов в словаре. Позволяет доставать пары как с конца так и с начала словаря, переставлять пары в конец или начало словаря. При сравнении учитывает порядок элементов, а не только их равенство. За все это платит большим потреблением памяти.
2) ChainMap нужен для логического объединения словарей для поиска информации, физического копирования словарей не происходит и если изменить один из исходников, то изменении отобразится и в chainMap. Удобен для поиска информации, но при изменениях меняется первый словарь в наборе.
3) Counter - удобный инструмент для подсчета элементов в последовательности, считает только с hashable типы (строки, числа, кортежи).
4) defaultdict нужен для создания словаря со значением по умолчанию. Значение подставляется при обращении к несуществующему ключу, что позволяет не писать лишней логики. В остальном аналогичен обычному словарю.
5) deque - двунаправленная очередь, быстро вставляет элементы как в конец, так и начало, быстро достает с обоих концов. Она потокобезопасна (thread-safe) и может быть использована для многопоточных операций, позволяет задать максимальный размер.
6) namedtuple нужен для создания структуры данных, нечто среднее между стандартными типами и самописным классом. Пригодится когда отдельный класс избыточен или ООП пока неизвестно. Неизменяемый, позволяет обращаться по имени атрибута (причем быстро), позволяет использовать индексы.

Почитать про это все:

Присоединяйтесь к помощи каналу, будет интересно)
✔️Юмани 410011506612886

Будь первым везде и всегда, включай уведомления о новых выпусках 🔔

#Python #PythonRussian #PyCharm
Рекомендации по теме
Комментарии
Автор

Дружище, ты просто Педагог от бога, объяснил чётко, спокойно и без уныния. Респект)

railsabbitovich
Автор

Чёткий обзор! Я б добавил про дефолт дикт, что при создании можно туда впихнуть лямбда функцию и создавать по дефолту любой объект, например, ещё один дефолт дикт. Очень удобная штука. Помимо этого, есть вариант использовать стандартный метод словаря setdefault() кажется. Тогда условие не потребуется. Но приятнее работать с дефолтдикт.

mgotovtsev
Автор

Спасибо! Это очень крутой урок! Ты очень хороший педагог!!!

eelxpen
Автор

Очень наглядные объяснения и примеры использования! Каждый раз думаю - "Что же я еще не трогал в питоне?", а такие видео быстро ставят на место)
Листы лучше очереди тем, что можно оперировать элементами из любой части массива, а не только с начала и конца?

cucumber
Автор

Я редко пишу комменты, но ты просто лучший ! Спасибо тебе большое !

danast
Автор

круто объясняешь все понятно но не хватает тайм-кодов

fzzggtc
Автор

очень понятно и доходчиво. спасибо большое

korleone
Автор

Было бы интересно послушать про пакет itertools)

eldos
Автор

Спасибо, очень содержательное и крайне полезное видео!

s_merq
Автор

Спасибо за видео, очень полезно
Лайк, подписка 100%

blazedenshinobu
Автор

>>>в чем преимущество списка перед deque из модуля collections языка python?
Списки являются хорошим выбором, когда вам нужен простой и удобный способ хранения упорядоченных элементов и операций над ними, особенно если важен быстрый доступ к элементам по индексу и использование срезов.

alexey
Автор

29:50 в двунаправленном списке удаляются элементы за О(1), как и вставка в конец или начало

普京的手机
Автор

dct = {}
for char in "hello":
dct.setdefault(char, []).append(char)

print(dct)

Как альтернатива defaultdict

shinigami_yokoso
Автор

может делать тайм-коды в таких, довольно больших, видео?....

MrSmallChe
Автор

Спасибо большое за полезную лекцию. Подскажите, пожалуйста, сочетание клавиш в пайчарме, чтобы провалиться в функцию/класс на 48:35?

ezlcrgq
Автор

Просканировал 1 том "Войны и мира" и получил следующие результаты по количеству вхождений:

Из всех слов:
1) "и": 4657
2) "в": 2166
3) "не": 1871
4) "на": 1524
5) "что": 1491


Из нормальных слов:
1) "сказал": 566
2) "было": 489
3) "князь": 417
4) "был": 364
5) "Андрей": 294

SemyonKalyakulin
Автор

Привет
Очень информативный ролик, вопрос касательно метода counter, если в задаче наоборот нужно указать количество букв которые в строке появляются только один раз, а те которые больше 1 не должны учитываться, как можно увернуться с этим методом?
Спасибо!

mtbkkfl
Автор

Привет, все актуально до сих пор? И хотел спросить обновляються ли встроенные модули по типу collections, datetime и тп?

neydygdrg
Автор

Хорошее видео, возможно лучшее, что можно найти. Но меня мучает вопрос связанный с ChainMap.Допустим у нас 5 словарей, и key in chain нам вывело True.Но как нам узнать в каком именно из этих словарей находится нужный нам ключ?

ilya
Автор

Спасибо больше за классные видосы, не посоветуешь хорошие ресурсы по изучению ML?

hopelesssuprem