Théorie sur les listes en Python

 Mise en Projet 

À l'issue de ce chapitre, l'apprenant·e aura une bonne représentation de ce que sont les listes en Python et sera capable d'utiliser tous les outils nécessaires pour arriver à ses fins.

 Objectif 

L'objectif de ce chapitre est que l'apprenant·e sache maîtriser les différents outils des listes :

  1. La déclaration et l'initialisation des listes;
  2. La lecture des listes et de leurs composants;
  3. L'obtention de renseignements sur les listes et leurs composants;
  4. La modification les listes et de leurs composants.

 Déclaration et initialisation des listes 

Le terme ma_liste représente le nom de toute liste que vous pourriez déclarer dans vos programmes, ce n'est pas un mot réservé.
Remarque : vous pouvez taper les initialisations ci-dessous dans la fenêtre d'exécution de IDLE (le shell) et ensuite taper, à la ligne suivante, la commande print (ma_liste). Vous verrez ainsi les contenus de vos différentes listes. Vous pourrez aussi vérifier vos propres essais.

Le shell de IDLE

Déclaration : ma_liste = [], vous déclarez ainsi la liste ma_liste en tant que liste vide.

Initialisation explicite :

  • ma_liste_1 = [1,2,3] avec 3 valeurs;
  • ma_liste_2 = ["bonjour","au revoir"] avec 2 chaînes de caractères;
  • ma_liste_3 = [True,False,False,True] avec 4 booléens.

Initialisation implicite :

  • ma_liste_4 = list(range(5)) avec les valeurs [0,1,2,3,4];
    • 5 valeurs à partir de 0. 5 ne figurera pas dans la liste.
  • ma_liste_5 = list(range(5,10)) avec les valeurs [5,6,7,8,9];
    • 10-5 valeurs à partir de 5. 10 ne figurera pas dans la liste.
  • ma_liste_6 = list(range(1,10,2)) avec les valeurs [1,3,5,7,9];
    • On va de 1 à 9 par pas de 2.
  • ma_liste_7 = list(range(10,-10,3)) avec les valeurs [10,7,4,1,-2,-5,-8];
    • Les arguments négatifs sont autorisés :
    • On va de 10 à -9 maximum par pas de 3.

En résumé pour l'initialisation implicite :

  1. S'il n'y a qu'un argument dans range, la liste contiendra le nombre de valeurs égal à cet argument en partant de 0 inclus. Un argument seul et négatif donnera une liste vide;
  2. S'il y a deux arguments dans range, la liste commencera au premier argument une unité à la fois pour se terminer au second argument - 1. Il est possible de demander range(-10,-5) par exemple;
  3. S'il y a trois arguments dans range, la liste commencera au premier argument par pas du troisième argument pour se terminer avant le second argument.

 Lecture des listes 

1. print (ma_liste) va afficher l'entièreté du contenu de la liste entre [].

2. Il y a moyen, grâce à un indice, de sélectionner un élément de la liste sur base de sa position.

Par exemple, si je déclare ma_liste_8 = ["un","deux","trois"] et demande print (ma_liste_8[0]), cela affichera un. Important : le premier élément d'une liste aura toujours l'indice 0.

Que se passera-t-il si vous demandez print (ma_liste_8[3]) ? Vous aurez l'erreur : list index out of range du fait que vous êtes en dehors de la plage (range). En effet, en tapant l'indice "[3]", vous demandez le quatrième élément (on commence à 0) de ma_liste_8 qui n'existe pas.

3. Il y a moyen d'afficher le contenu d'une liste sans les [] ...

4. Pour parcourir une liste, il est possible d'utiliser une boucle for. De façon assez étonnante, la variable de comptage va prendre comme valeurs la suite des éléments de la liste. Copiez-coller le programme suivant dans IDLE pour vérifier son effet.

print ("Ce programme parcourt la liste encodée.")
ma_liste_9 = ["Il", "était", "une", "fois", "..."]
for i in ma_liste_9 :
    print (i)
print ("Voilà, c'est terminé.")

Vous obtenez tous les éléments de la liste en colonne. i a donc bien été affecté tour à tour par chacun des 5 éléments de la liste et le simple fait de signaler in ma_liste_9 a donné les limites de variation de i allant de l'indice 0 à l'indice 4 compris.

5. Il y a moyen d'afficher les paires index élément d'une liste ...

 Se renseigner sur des listes existantes 

1. Connaître la longueur d'une liste (le nombre d'éléments qui la constituent) : len (ma_liste)

2. Savoir si un élément existe dans une liste : Élément in ma_liste retournera True si Élément se trouve dans ma_liste, False s'il ne s'y trouve pas.

3. Trouver l'indice d'un élément qui existe dans une liste : ma_liste.index(xyz) retournera l'indice de l'élément xyz. Veillez à vérifier au préalable si cet élément se trouve bien dans la liste.

4. Compter les éléments particuliers dans une liste : ma_liste.count("A") donnera le nombre de "A" dans ma_liste.

5. Trouver l'indice d'un élément dans une liste : ma_liste.index("A") donnera l'indice (la position) de "A" dans ma_liste. Veillez à vérifier au préalable si l'élément se trouve dans la liste.

 Manipuler des listes existantes 

Assurez-vous que l'élément sur lequel vous allez travailler existe bien dans la liste. Élément in ma_liste retournera True si Élément se trouve dans ma_liste, False s'il ne s'y trouve pas.

1. Ajouter un élément à la fin d'une liste : ma_liste.append(xyz) ajoute l'élément xyz en fin de liste.

2. Ajouter un élément à une certaine place dans une liste : ma_liste.insert(Position, Élément) ajoutera Élément à la place Position dans la liste. Les indices des éléments suivants se mettront à jour.

3. Modifier un élément dans une liste : ma_liste [indice] = xyz remplace l'élément à la position indice par xyz.

4. Supprimer un élément dans une liste : ma_liste.remove[2] supprime l'élément d'indice 2 (le troisième) de la liste.

5. Supprimer un élément dans une liste : ma_liste.remove(xyz) supprime l'élément xyz de la liste.

  • Si plusieurs éléments à supprimer : while "A" in ma_liste : (à la ligne) ma_liste.remove("A")

6. Trier une liste : ma_liste.sort(). La liste sera triée en ordre croissant. Pour l'ordre décroissant, utiliser reverse ci-dessous après un tri.

7. Inverser une liste : ma_liste.reverse(). Attention, la liste ne sera pas triée, juste inversée dans l'état dans lequel elle se trouve.

8. Copier une liste : ma_copie = ma_liste.copy() copie ma_liste dans ma_copie.

9. Combiner deux listes : ma_liste_1.extend(ma_liste_2) ajoute ma_liste_2 à le fin de ma_liste_1.

10. Vider une liste : ma_liste.clear() vide la liste de son contenu mais la liste existe toujours.

11. Supprimer une liste : del ma_liste détruit définitivement la liste, elle n'existe plus.


Bonne poursuite de votre apprentissage.

Retour