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 liste, la différence 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.

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.