Python: Liste: Difference between revisions

From Wiki Cours
Jump to navigation Jump to search
Line 47: Line 47:
a = [3,2,1,0]
a = [3,2,1,0]
b = list(a)
b = list(a)
b[2] = 5
c = a[:]
c = a[:]
b[2], c[1] = 5, -3
c[1] = -3
print a,b,c
print a,b,c
</source>
</source>

Revision as of 11:47, 15 July 2015

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

Génération de listes

Méthodes utiles pour les listes

Les dictionnaires