Python: Liste
Les listes
Initialisation
Une liste est un tableau ordonné qui contient des pointeurs vers des objets qui peuvent être simplement des données numériques (entiers ou réels) ou des choses plus compliquées comme des nombres complexes ou même des listes. Pour créer une liste vide, on peut faire
a = list()
a = []
print a # affiche la liste
On peut définir une liste en explicitant son contenu, les éléments sont alors séparés par des virgules. Voici un exemple de liste au contenu homogène puis un avec un contenu
a = [1,4,2,3] # une liste d'entiers
a = [ 2, complex(1,3), 4.5, ['a','b','c'] ] # une liste au contenu inhomogène
Indiçage
On accède aux éléments de la liste à l'aide de l'opérateur d'indiçage [] comme en C. De même qu'en C, le premier indice est 0. Cet opérateur permet à la fois d'accéder au contenu stocké à la ième place, via a[i], mais aussi de le modifier.
a = [3,2,1,0]
print a[0],a[1],a[2],a[3]
a[0] = 'a'
print a
Le nombre d'éléments est accessible par la méthode len() selon
print len(a)
Copie d'une liste
Il faut faire attention au fait qu'en Python, qui a un typage dynamique, l'affection suivante fait que la liste b va pointer vers le contenu de a:
a = [3,2,1,0]
b = a
Si l'on modifie un élément de b, le contenu est changé et donc les éléments de a également
a = [3,2,1,0]
b = a
b[2] = 5
print a,b
Pour réellement créer une copie indépendante, il faut générer une nouvelle liste en dupliquant le contenu de a. Il y a deux façons simple de le faire
a = [3,2,1,0]
b = list(a)
b[2] = 5
c = a[:]
c[1] = -3
print a,b,c
deepcopy