Apprentissage du langage Python

Les listes

Généralités

Les listes sont des séquences d'éléments itérables et modifiables.

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']
liste3 = [5, "Janvier", 12, [2, 9.5]]  #Les listes peuvent contenir des éléments de tout type, y compris des listes !
liste4 = []  #Une liste peut être vide

Récupération de la longueur d'une liste

La longueur de la liste peut être récupérée à l'aide de la fonction len(liste).

Les opérateur + et *

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.

Lecture d'une liste

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

Pour récupérer l'un des éléments d'une variable liste de type lst, on procède de l'une des façons suivantes :

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

Exemple :

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

Récupération d'une portion de liste

Pour extraire une partie d'une variable liste de type lst, on procède de l'une des façons suivantes :

liste[i:j] Renvoie la portion de liste du iième (compris) au jieme élément (non compris).
liste[:j] Renvoie la portion de liste du premier au jième élément (non compris).
liste[i:] Renvoie la portion de liste du iième élément (compris) au dernier.

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

Pour modifier un élément d'une variable liste de type lst, on procède de l'une des façons suivantes :

liste[i] = x avec i≥0 Modifie liste en remplaçant l'élément d'indice i par x, le premièr élément ayant l'indice 0.
liste[i] avec i<0 Modifie liste en remplacç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 varialbe liste est maintenant égale à [12, 'a', -9, 9.5, 3]

Ajout d'éléments à une liste

Ajout d'un élément

liste.append(x) Modifie la variableliste en ajoutant l'élément x après le dernier élément.
liste.insert(i,x) Modifie liste en ajoutant l'élément x à la position i et en décalant les éléments qui suivent.

Ajout de plusieurs éléments à partir d'un itérable

Pour insérer les éléments d'un itérable (chaine de caractères, liste...) à une liste, on procède de la façon suivante :

liste.extend(iter) Modifie liste en ajoutant les éléments de l'itérable iter à la fin de liste.

Ajout de plusieurs éléments à partir d'une autre liste

Pour insérer tous les éléments d'une liste liste2 à la place d'un ou plusieurs éléments d'une liste liste, on procède de la façon suivante :

liste[i:i] = liste2 Insère tous les éléments de liste2 juste après l'élément de liste d'indice i.
liste[i:j] = liste2 Insère tous les éléments de liste2 à la place des éléments de liste dont les indices vont de i (compris) à j (non compris).
liste[:j] = liste2 Insère tous les éléments de liste2 à la place des éléments de liste du début jusqu'à celui dont l'indice est j (non compris).
liste[i:] = liste2 Insère tous les éléments de liste2 à la place des éléments de liste de celui dont l'indices est i (compris) jusqu'à la fin.

Remarque : si liste2 est une liste vide, les instructions précédentes permettent d'effacer un ou plusieurs éléments de liste.

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

Suppression à partir de la position avec la fonction pop(...)

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

Suppression à partir de la position avec l'instruction del

L'instruction del permet de suprimer un élément ou une portion d'une liste.

Exemple :

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

Exemple :

liste = ["a", "b", "c", "d", "e", "f"]
del liste[1:5] #La varialbe liste est maintenant égale à ["a", "f"]

Suppression à partir de la valeur

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

Autres opérations sur les listes

Utilisation des fonctions prédéfinies

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

Les fonctions 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.

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.

Parcours d'une liste avec for ... in

Utilisation de for pour parcourir les valeurs

Exemple : affichage des 10 premiers carré

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 positions

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")

Création rapide de listes

Par compréhension

Exemple : liste des 10 premier carré :

liste = [x**2 for x in range(1,11)]

Exemple : liste des nombres paires inférieurs à 100 :

liste = [nb for nb in range(1,101) if nb % 2 ==0]

A l'aide de la fonction list(...)

Exemple : liste des 100 premiers nombres

liste = list(range(1,101))

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

liste = list("abcdefghijklmnopqrstuvwxyz")