Mémo : Les listes

Les listes sont des séquences : elles sont ordonnées et itérables

Les listes sont muables : elles peuvent être modifiées après leur création.

Les listes sont hétérogènes : elles peuvent contenir tous les types d'objets.

Généralités

Création d'une liste

Les listes s'écrivent avec des crochets [ ]. Les éléments sont séparés par des virgules.

Exemple :

liste1 = [12, 8, -9, 9.5, 3]
liste2 = ['a', 'b', 'c', 'd']
liste4 = []  #Une liste peut être vide

Longueur d'une liste

len(liste) Renvoie le nombre d'élément dans la liste, c'est-à-dire la longueur de la liste.

Récupération d'un élément d'une liste

liste[i] avec i ≥ 0 Renvoie le ième élément de liste en partant du début, le premier élément ayant l'indice 0.
liste[i] avec i < 0 Renvoie le ième élément de liste en partant de la fin, le dernier élément ayant l'indice -1.

Exemple :

liste = ['a', 'b', 'c', 'd']
elt_A = liste[1]  #La variable elt_A contient maintenant 'b'
elt_B = liste[-2]  #La variable elt_B contient 'c'

Modification d'une liste

Remplacement d'une valeur par une nouvelle valeur

liste[i] = x avec i≥0 Modifie liste en remplaçant l'élément d'indice i par x, le premier élément ayant l'indice 0.
liste[i] = x avec i<0 Modifie liste en remplaçant l'élément d'indice i par x en partant de la fin de la liste, le dernier élément ayant l'indice -1.

Exemple :

liste = [12, 8, -9, 9.5, 3]
liste[1] = 'a'  #La variable liste est maintenant égale à [12, 'a', -9, 9.5, 3]

Ajout d'un élément à une liste

• Ajout d'un élément à l'aide de la méthode append(...)

liste.append(x) Modifie liste en ajoutant l'élément x après le dernier élément.

• Remarque : ajout d'un élément par concaténation

Il est possible d'utiliser l'opérateur + entre deux listes :

l1 + l2 Renvoie une liste qui contient les éléments de l1 avec à la suite ceux de l2.

Avec cet opérateur, on ajoute un élément à la liste avec le code suivant.

liste = liste + [x] Modifie liste en ajoutant l'élément x après le dernier élément.

Suppression d'un élément d'une liste

• Suppression d'un élément à l'aide de la méthode pop(...)

liste.pop() Modifie liste en supprimant le dernier élément et renvoie cet élément.
liste.pop(i) Modifie liste en supprimant le ième élément et renvoie cet élément.

• Suppression à l'aide l'instruction del

Exemple :

liste = ['a', 'b', 'c', 'd', 'e', 'f']
del liste[1] #La variable liste est maintenant égale à ['a', 'c', 'd', 'e', 'f']

• Suppression d'un élément d'une liste

liste.remove(elt) Modifie liste en supprimant l'élément elt.
Attention, si l'élément x n'est pas dans liste, cette fonction lève une erreur.

Parcours d'une liste avec for ... in ...

Utilisation de for pour parcourir les éléments

Exemple : affichage des 10 premiers nombres entiers

liste = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
for elt in liste:   #elt est une variable qui prend successivement les valeurs de la liste
    print(elt, "^2"," = ", elt**2, sep="")

Utilisation de for pour parcourir les indices

Exemple : affichage d'une lettre sur deux de l'alphabet

liste = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q','r', 's']
for i in range(len(liste)):   #i est une variable qui prend successivement les valeurs des positions
    if i % 2 == 0:
        print(liste[i], end='')

Condition d'appartenance d'un élément à une liste

Les conditions (utilisable avec if ou while) d'appartenance et de non-appartenance d'un objet à une liste sont : in et not in.

Exemple :

liste = ['a', 'e', 'i', 'o', 'u', 'y']
caract = 'b'
if caract in liste:
    print(caract, 'est une voyelle')
if caract not in liste:
    print(caract, 'n'est pas une voyelle')

Autres opérations sur les listes

Les opérateurs + et * appliqués aux listes

l1 + l2 Renvoie une liste qui contient les éléments de l1 avec à la suite ceux de l2.
l1 * n ou n * l1 Renvoie une liste qui contient de façon répétée n fois les éléments de l1.

Exemple :

liste1 = [12, 8, -9]
liste2 = [3, 5]
liste = liste1 + liste2  # liste3 contient [12, 8, -9, 3, 5]

Remarque : l'opérateur + peut être utilisé pour ajouter un élément à une liste :

liste = [12, 8, -9]
elt = 5
liste = liste + [elt]  # liste3 contient [12, 8, -9, 5]

La fonction list

La fonction list(itérable) transforme un itérable en liste.

Exemple : liste des 100 premiers nombres

liste = list(range(1,101))

Exemple : transformation d'une chaine de caractères en liste

liste = list('abcdefghijklmnopqrstuvwxyz')

Utilisation de méthodes prédéfinies

• Les méthodes de recherche dans les listes

liste.index(x) Renvoie l'indice de la première occurrence de x dans liste ou une erreur si x n'est pas dans liste.
liste.count(x) Renvoie le nombre d'occurrence de x dans liste.

• La méthode de tri d'une liste

liste.sort() Modifie liste en triant l'ordre de ses éléments s'ils sont du même type.

Quelques fonctions du module random pour les listes

Pour pouvoir utiliser les fonctions suivantes, le module random doit être importé :

from random import *
choice(liste) Renvoie un élément de liste pris aléatoirement.
sample(liste, n) Renvoie une liste contenant n éléments de liste pris aléatoirement.
shuffle(liste) Mélange les éléments de liste.