← retour aux snippets

deque: file récente avec maxlen

Garder les N derniers éléments en mémoire sans gonfler.

python collections #collections#deque#ringbuffer

objectif

Garder les N derniers éléments en mémoire sans gonfler.

code minimal

from collections import deque
dq = deque(maxlen=3)
for i in range(5):
    dq.append(i)
print(list(dq) == [2,3,4])  # attendu: True

utilisation

from collections import deque
dq = deque([1,2,3], maxlen=3)
dq.appendleft(0)
print(list(dq) == [0,1,2])

variante(s) utile(s)

from collections import deque
dq = deque("abc", maxlen=5)
dq.extend("de")
print("".join(dq) == "abcde")

notes

  • maxlen limite la taille et évince automatiquement les anciens éléments.
  • deque est thread-safe pour append/pop atomiques.