Jul 03, 2024

Wiki

Python

Aide

edit SideBar

Search

Collections


Le module collections fournit deux nouveaux conteneurs :

  • le deque, une extension des listes,
  • le defaultDict, extension des dictionnaires.

Deque

Présentation

Un deque (double-ended queue) est une sorte de liste, à laquelle on peut accéder par ses deux bouts. Cela permet de réaliser aisément, par exemple, une structure de pile, ou de file.

On manipule les deque comme les listes, comme l'illustre les exemples suivants :

  >>> import collections
  >>> d = collections.deque('abcde')
  >>> d
  deque(['a', 'b', 'c', 'd', 'e'])
  >>> len(d) 
  5
  >>> d[0]
  'a'
  >>> d[-1]
  'e'
  >>> d.remove('c')
  >>> d
  deque(['a', 'b', 'd', 'e'])
  >>> d = collections.deque(range(5))
  >>> d
  deque([0, 1, 2, 3, 4])

Ajout d'un élément

On peut ajouter des éléments à un deque...

  • Un à un, à droite avec la méthode append(), et à gauche avec appendleft()
  >>> d
deque([0, 1, 2, 3, 4])
  >>> d.append(5)
  >>> d.appendleft(-1)
  >>> d
  deque([-1, 0, 1, 2, 3, 4, 5])
  • En bloc, avec la méthode extend(),
  >>> d
deque([-1, 0, 1, 2, 3, 4, 5])
  >>> d.extend([6,7,8])
  >>> d
  deque([-1, 0, 1, 2, 3, 4, 5, 6, 7, 8])
ou la méthode extendleft(), ce dernier se comportant comme une succession de plusieurs appendleft() :
  >>> d
  deque([-1, 0, 1, 2, 3, 4, 5, 6, 7, 8])
  >>> d.extendleft([-4, -3, -2])
  >>> d
  deque([-2, -3, -4, -1, 0, 1, 2, 3, 4, 5, 6, 7, 8])

Enlèvement d'un élément

Les éléments aux deux bouts d'un deque peuvent être "consommés" avec les méthodes pop() et popleft() :

  >>> d = collections.deque('abc')
  >>> d
  deque(['a', 'b', 'c'])
  >>> d.pop()
  'c'
  >>> d
  deque(['a', 'b'])
  >>> d.popleft()
  'a'
  >>> d
  deque(['b'])

Permutation circulaire

On peut encore réaliser une permutation circulaire des éléments d'un deque, vers la gauche ou vers la droite.

  >>> d = collections.deque(range(8))
  >>> d
  deque([0, 1, 2, 3, 4, 5, 6, 7])
  >>> d.rotate(3)
  >>> d
  deque([5, 6, 7, 0, 1, 2, 3, 4])
  >>> d.rotate(-3)
  >>> d
  deque([0, 1, 2, 3, 4, 5, 6, 7])

defaultDict

Page Actions

Recent Changes

Group & Page

Back Links