|
Курс · Python · deque
О курсе
Этот курс поможет разобраться с
collections.deque
в Python: очередями, стеками, буферами, круговыми структурами и задачами, где важно быстро работать с левым и правым краем.
|
|
Python deque: очереди, стеки и буферы - это курс про двустороннюю очередь из модуля
collections.
deque
особенно полезен, когда элементы часто приходят и уходят с краёв последовательности: справа, слева или сразу с двух сторон.
В курсе мы будем разбирать не только методы, но и модели: FIFO-очередь, LIFO-стек, ограниченный буфер, круговую очередь и более серьёзные задачи, где
deque
помогает писать эффективный код.
|
Roadmap мини-курсов
|
Эта серия курсов помогает по шагам разобраться с базовыми структурами данных Python и их методами: списками, строками, множествами, словарями и коллекциями из модуля
collections.
Курсы можно проходить отдельно, но лучше двигаться по порядку: сначала списки, затем строки, множества, словари и дополнительные структуры данных.
|
| Курс |
Что внутри |
|
Python Списки: Методы и магические методы
|
Курс по методам встроенного типа
list:
добавление и вставка, удаление и очистка, поиск и подсчёт, порядок элементов, копирование и магические методы.
Этот курс хорошо пройти до
deque,
потому что он объясняет базовую работу с последовательностями.
|
|
Python Строки: Методы и магические методы
|
В разработке.
|
|
Python Множества: Методы
|
Курс по методам множества
set:
добавление, удаление, копирование, операции над множествами и проверки отношений.
|
|
Python Словари: Методы и магические методы
|
В разработке.
|
|
Python deque: очереди, стеки и буферы
Текущий курс
|
Курс про
collections.deque:
создание двусторонней очереди, работа с левым и правым краем, FIFO-очереди, LIFO-стеки, ограниченные буферы через
maxlen,
круговые структуры через
rotate,
ловушки, асимптотику и практические задачи.
Здесь вы разберёте методы
append,
appendleft,
pop,
popleft,
extend,
extendleft,
rotate
и особенности
maxlen.
|
|
Python Counter, defaultdict, OrderedDict, ChainMap: Методы
|
В разработке.
|
|
Для кого этот курс
|
1. Для тех, кто уже знает базовый Python и хочет увереннее работать с коллекциями из стандартной библиотеки.
2. Для тех, кто прошёл списки и хочет понять, когда обычного
list
уже недостаточно удобно.
3. Для тех, кто хочет решать задачи про очереди, события, историю действий, буферы последних значений и циклические структуры.
4. Для тех, кто хочет не заучивать методы, а понимать, какую структуру данных выбрать под условие задачи.
|
Что вы изучите
|
1
|
Идею deque. Что такое двусторонняя очередь и почему у неё важны оба края. |
|
2
|
Очереди и стеки. FIFO через append и popleft, LIFO через append и pop. |
|
3
|
Работу с двумя концами. Методы appendleft, popleft, extendleft и их отличие от похожих операций списка. |
|
4
|
Ограниченные буферы. Как использовать maxlen для хранения последних N событий, сообщений, ошибок или измерений. |
|
5
|
Круговые структуры. Метод rotate для очередей игроков, расписаний и каруселей. |
|
6
|
Ограничения и ловушки. Почему у deque нет срезов, почему pop(0) не работает и когда лучше выбрать list. |
|
Программа курса
|
Блок 1. Знакомство с deque
Что такое
deque,
чем он отличается от
list,
что такое стек, очередь и двусторонняя очередь.
Блок 2. Основные операции deque
Создание
deque,
методы
append,
appendleft,
pop,
popleft,
extend
и
extendleft.
Блок 3. Практические модели deque
Очередь FIFO, стек LIFO, ограниченный буфер
maxlen
и круговые структуры через
rotate.
Блок 4. Ограничения, ловушки и итоговая практика
Индексация, отсутствие срезов, отличие от списка, ошибки, ловушки, мини-проект с монотонной очередью и итоговый экзамен.
Итоговый экзамен
Финальная проверка по всему курсу: теория, результат кода, асимптотика, ошибки и практические задачи на выбор подходящей модели.
|
После курса вы сможете
|
Понимать, когда нужен
deque,
а когда лучше оставить
list.
Строить очереди FIFO, стеки LIFO и двусторонние очереди без лишних циклов и сдвигов элементов.
Использовать
maxlen
для истории последних N действий, сообщений, ошибок или измерений.
Применять
rotate
для круговых очередей, расписаний и каруселей.
Видеть типичные ошибки:
pop(0),
пустой
deque,
срезы, неверное использование
extendleft
и методов, которые возвращают
None.
Решать более сложные задачи, где
deque
используется не как справочный метод, а как инструмент для эффективного алгоритма.
|
|
Главное
Этот курс не про заучивание методов. Его цель - научить видеть задачу как процесс: кто приходит первым, кто уходит первым, что нужно хранить только в последних N элементах и где удобнее работать с двумя краями. Именно так
deque
становится рабочим инструментом, а не просто строкой из документации.
|
|