Python:Рецепты/Оставляем N последних элементов: различия между версиями

Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску
(Новая страница: «{{Python/Панель перехода}} {{Myagkij-редактор}} =Оставляем N последних элементов= ==Задача== Вы хот...»)
 
Строка 30: Строка 30:
Посмотрим, что находится в q(это вводить не надо):
Посмотрим, что находится в q(это вводить не надо):


<syntaxhighlight lang="python" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS" enclose="div">
<syntaxhighlight lang="python" enclose="div">
deque([1, 2, 3, 4, 5], maxlen=5)
deque([1, 2, 3, 4, 5], maxlen=5)
</syntaxhighlight>
</syntaxhighlight>
Строка 36: Строка 36:
Добавим следующий элемент:
Добавим следующий элемент:


<syntaxhighlight lang="python" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS" enclose="div">
<syntaxhighlight lang="python" enclose="div">
q.append(6)
q.append(6)
</syntaxhighlight>
</syntaxhighlight>
Строка 42: Строка 42:
Посмотрим, что находится в q(это вводить не надо):
Посмотрим, что находится в q(это вводить не надо):


<syntaxhighlight lang="python" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS" enclose="div">
<syntaxhighlight lang="python" enclose="div">
deque([2, 3, 4, 5, 6], maxlen=5)
deque([2, 3, 4, 5, 6], maxlen=5)
</syntaxhighlight>
</syntaxhighlight>
Как видим 1 слева пропала, 6 справа добавилось.


===№2===
===№2===
Строка 57: Строка 59:


</syntaxhighlight>
</syntaxhighlight>
''phones'' - будет всегда списком, даже если номеров нету вообще.


=См.также=
=См.также=

Версия от 00:06, 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 справа добавилось.

№2

Результат:

См.также

Внешние ссылки