Python:Рецепты/Оставляем N последних элементов: различия между версиями
Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску
Myagkij (обсуждение | вклад) (→Пример) |
Myagkij (обсуждение | вклад) (→Пример) |
||
Строка 47: | Строка 47: | ||
Как видим 1 слева пропала, 6 справа добавилось. | Как видим 1 слева пропала, 6 справа добавилось. | ||
{{Спойлер|Добавление или удаление элемента в очереди имеет сложность O(1), а вставка или удаление элемента в начале списка имеет сложность O(N)}} | |||
===№2=== | ===№2=== |
Версия от 00:08, 22 апреля 2020
Проверка/Оформление/Редактирование: Мякишев Е.А.
Оставляем N последних элементов
Задача
Вы хотите хранить ограниченное количество элементов, которое вы получаете в ходе выполнения итерации.
Решение
Для решения данной задачи подойдет collections.deque.
Пример
№1
deque(maxlen=N) создает очередь фиксированной длины. После заполнения очереди, самый старый элемент удаляется.
from collections import deque
q = deque(maxlen=5)
q.append(1)
q.append(2)
q.append(3)
q.append(4)
q.append(5)
Посмотрим, что находится в q(это вводить не надо):
deque([1, 2, 3, 4, 5], maxlen=5)
Добавим следующий элемент:
q.append(6)
Посмотрим, что находится в q(это вводить не надо):
deque([2, 3, 4, 5, 6], maxlen=5)
Как видим 1 слева пропала, 6 справа добавилось.
![]() |
Добавление или удаление элемента в очереди имеет сложность O(1), а вставка или удаление элемента в начале списка имеет сложность O(N) |
№2
Результат:
См.также
Внешние ссылки
Категории:
- Страницы с устаревшим атрибутом подсветки синтаксиса «enclose»
- Справочник языка Python
- Python
- Проверка:myagkij
- Оформление:myagkij
- Редактирование:myagkij
- SEO
- Рецепты
- Рецепты Python
- Последовательности в Python
- Работа с последовательностями в Python
- Распаковка в Python
- Работа со структурами данных в Python
- Структуры данных Python
- Последовательности
- Работа с последовательностями
- Распаковка
- Работа со структурами данных
- Структуры данных