Python propose différents containers pour stocker des éléments. Voici les plus courants:

  • list: tableau d’éléments indexés de 0 à n-1 auquel on peut ajouter ou retirer des éléments
  • dict: tableau d’éléments indexés par des types immuables auquel on peut ajouter ou retirer des éléments
  • tuple: tableau d’éléments indexés de 0 à n-1 qu’on ne peut pas modifier
  • set: tableau d’éléments uniques non indexés
  • frozenset: set immuables (non modifiable)
  • deque: presque équivalent à une listes, la différent vient de l’implémentation, les mêmes opérations n’auront pas les mêmes coûts (deque = liste chaînée)

D’autres containers sont disponibles via le module collections.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
N = 1000000

list_example = list(range(0,1000))
for i in range(0,N) :
if i in list_example : s += 1

tuple_example = tuple(list_example)
for i in range(0,N) :
if i in tuple_example : s += 1

set_example = set(list_example)
for i in range(0,N) :
if i in set_example : s += 1

frozenset_example = frozenset(list_example)
for i in range(0,N) :
if i in frozenset_example : s += 1

list_example = list()
# Insertion à la fin
for i in range(0,N):
list_example.append(i)
# Insertion au début
for i in range(0,N):
list_example.insert(0,i)


import collections

collection_example = collections.deque()
# Insertion au début
for i in range(0,N) :
collection_example.appendleft(i)
# Insertion à la fin
for i in range(0,N):
collection_example.append(i)

Notez que les ensembles set ou frozenset sont beaucoup plus rapides que tuples et lists.