Listes

Une liste est un séquence linéaire d’objets. En Python, syntaxiquement, une liste

  • est délimitée par des crochets []

  • ses éléments sont séparés par des virgules ,

Voici un exemple avec une liste de chaines de caractères. La fonction len retourne la longueur d’une liste, le nombre d’éléments qu’elle contient.

Exercice: Ajoutez un élément à la liste fruits. Ajoutez une deuxième liste prix avec des éléments numériques.

La fonction list

La fonction list peut transformer un itérable (plage, chaine, ensemble, …) en liste.

La fonction list transforme une chaîne en liste.

Index

Nous pouvons accéder à un élément de la liste en utilisant un numéro entre crochets [], appelé index. L’index d’un élément est toujours un nombre entier. En Python, comme dans beaucoup de langages de programmation, l’index pour le premier élément de la liste est 0 et non pas 1. Ainsi, les éléments d’une liste de longueur n auront comme premier index 0 et comme dernier index n - 1.

Exercice: Essayez d’accéder aux éléments fruits[2] et fruits[3].

Un index négatif désigne un élément d’une liste depuis la fin de la liste.

Tranche

La notation [i:j], après le nom d’une variable qui contient une liste, permet d’extraire une tranche (un sous-séquence) de la liste telle qu’identifiée par les deux index i et j.

L’expression suivante extrait la sous-liste du 3e au 5e élément.

L’expression suivante extrait la sous-liste du début au 4e élément. La deuxième extrait la sous-liste du 8e élément à la fin.

Ceci extrait les éléments à partir de l’avant-dernier, jusqu’à la fin.

Itération sur une liste

La boucle for peut itérer sur les éléments d’une une liste. La variable d’itération prend successivement la valeur de chaque élément de la liste. La pratique est d’utiliser pour la liste un nom de variable au pluriel (fruits) et pour l’itérateur le même nom au singulier (fruit).

Concaténation

L’opérateur + permet de concatener (enchainer) deux listes.

Répétition

L’opérateur * permet de répéter une liste.

Ajouter des éléments

Une méthode fonctionne comme une fonction, mais est rattachée à une liste avec la notation doté (.). Par exemple si a designe une liste, on peux ajouter un élément à cette liste avec l’expression a.append(x).

Ces 3 méthodes différentes permettent d’ajouter des éléments à une liste existante:

  • append(x)

  • extend(iterable)

  • insert(i, x)

La méthode append(x) permet d’ajouter un élément x à la fin de la liste.

La méthode extend(itérable) ajoute plusieurs éléments. Un itérable est une séquence telle que liste, chaîne de texte, ensemble, tuple, …

La méthode insert(i, x) insert un nouveau élément x à la ie position.

Enlever des éléments

Les méthodes suivantes permettent d’enlever des éléments à une liste.

  • remove(x)

  • pop(i)

  • clear()

La méthode remove(x) enlève l’élément x s’il existe, et donne une erreur autrement.

La méthode pop() enlève le dernier élément.

La méthode pop(i) enlève le ie élément.

La méthode clear() enlève tous les éléments.

Opérations

Les listes disposent aussi de méthodes pour trier et inverser ses éléments et pour compter un élément spécifique.

La méthode sort() trie la liste. Cette méthode fonctionne uniquement si tous les éléments sont du même type (nombre, texte) et peuvent être comparés.

La fonction reverse() inverse la liste.

La fonction count(x) compte le nombre d’occurences de l’élément x.

La pile (LIFO)

Une pile est une structure de données qui permet de gérer un ensemble d’éléments et leur arrivée et départ dans le temps. Dans une pile le dernier élément arrivé est le premier à partir.

Cette structure s’appelle stack en anglais ou LIFO (last in first out)

Le tampon (FIFO)

Le tampon (ou le file d’attente) est une structure de données qui permet de gérer des éléments et leur arrivée et départ. Dans une file d’attente, le premier élément arrivé est le premier à partir.

Cette structure s’appele buffer en anglais ou FIFO (first in first out)

Vecteurs

Une liste peut représenter un vecteur. Pour calculer la norme d’un vecteur nous additionnons les carrés des éléments et prenons la racine carrée.

Pour additionner deux vecteurs, il faut additionner chacun de leurs éléments.

Pour multiplier un vecteur avec un scalaire k, il faut multiplier chaque élément avec ce scalaire.

Pour calculer le produit scalaire de deux vecteurs, il faut additionner le produit des éléments des vecteurs.

Compréhension de liste

Une compréhension de liste est une manière compacte de construire des listes sur une seule ligne.

Voici un exemple de construction «traditionnelle» d’une liste où on ajoute un élément après l’autre avec une boucle:

En utilisant les compréhension des listes, on peut construire la même liste sur une seule ligne:

Une condition peut être ajoutée dans la compréhension (par exemple, pour n’ajouter à la liste que les valeurs impaires):

Nous pouvons alors écrire la formation de cette liste en une seule ligne.