Accueil
Mes tutoriels sur la programmation

Traduction

Tutoriel Python - sommaire

Contenu de la page à la suite du sommaire.

Vous pouvez me contacter via Facebook (questions, critiques constructives) : Page Facebook relative à mon site

Les listes

Premiers pas

Définition d'une liste

La liste est le conteneur (série de données) le plus utilisé en Python.
Lorsqu'on interroge une liste avec la fonction type(), le message retourné est "class 'list'" (instance de la classe 'list').
Une liste est une suite d'élements séparés par des virgules et encadrés par des crochets.
Les différentes éléments peuvent être des entiers, des flottants, des chaines, des booléens OU un mélange de tout cela.

Tapez dans la console interactive (l'interpréteur) les commandes qui suivent :

La liste ci-dessus comprend 4 éléments de type différent : un booléen, un entier, une chaine et un flottant.
Je vous montre ci-dessus comment accéder à un élément d'une liste : nomListe[indice]
Le premier élément d'une liste a l'indice 0 ! Donc si le nombre de termes d'une liste est n alors le dernier terme a l'indice n-1.

Liste d'entiers

On utilise très souvent les listes d'entiers d'autant qu'elles peuvent être créées rapidement via la fonction range().

Une batterie de commandes à saisir dans la console interactive.

a est un variable contenant une liste. En effet on lui a affecté une énumération délimitée par des crochets.
La commande type(a) retourne 'list'.
Les commandes list(a) ou print(a) ou a ont le même effet : afficher le détail de la liste.
Pour afficher le premier élément de la liste il faut écrire a[0]. On dit que le premier nombre a la position (ou indice) zéro, le deuxième l’indice 1, etc. L'indice doit être écrit entre crochets.

Peux t-on utiliser l'opérateur de comparaison "in" dans une liste d'entiers ?

Essayons !

Donc la réponse est OUI ! Une commande basé sur l'opérateur "in" retourne toujours un booléen.

Liste d'entiers avec la fonction range()

On peut construire rapidement une liste d'entiers grâce à une commande basée sur la fonction range().

Tapez les commandes suivantes

Attention la fonction range() toute seule crée un objet de type range (et non pas une liste).
Pour créer un objet de type 'list' composé d'entiers, il faut imbriquer range() & list() dans une même commande OU enchainer deux commandes comme dans l'exemple 2

Listes en compréhension

Abordons maintenant des formules un peu plus complexes : listes en compréhension.

Construire la liste des carrés des entiers naturels

La commande ci-dessus produit la liste des carrés des entiers de 0 à 9 inclus.

Construire la liste des premiers entiers pairs

La commande produit la liste des entiers entre 0 et 9 inclus dont la division entière par 2 donne un reste égal à zéro.

Construire la liste des carrés des premiers entiers impairs

Les nombres impairs divisés par 2 donnent un reste non nul.

Liste de "mots"

On peut construire des listes de chaines.

Une série de commandes sur une liste de chaines

Quelques commandes pour réviser :

La liste contient des nombres écrits en lettres !

Plus loin dans le "slicing"

À saisir dans l'interpréteur :

Quand une chaine comprend une apostrophe, elle doit impérativement être délimitée par une paire de guillemets doubles (jamais des guillemets simples). Et c’est logique sinon l'interpréteur ne peut savoir où s’arrête la chaine.

De telles commandes peuvent-elles s'appliquer à une liste de nombres ?
Vérifions ci-dessous !

Donc la réponse est OUI !

* un nombre premier et un entier qui admet seulement 2 diviseurs : 1 et lui-même.

Opérations complexes sur les listes

L’addition entre des listes et la multiplication d’une liste par un entier

Exemple :

Première commande : ajout d'éléments à une nouvelle liste à partir de la liste initiale
Deuxième commande : affichage d'une liste avec le double d'éléments.
Attention, si vous écrivez seulement ma_liste2 *2 vous affichez (mais ne créez pas) une nouvelle liste à partir de liste2.
Pour créer une nouvelle liste, il faut écrire : ma_liste3 = ma_liste2*2

Des méthodes que l'on peut appliquer à une liste

La syntaxe est la suivante : nomListe.méthode(paramètres éventuels).

Quelques méthodes applicables à une liste :

Donc les deux méthodes remove() & pop() suppriment un élément de la liste ; mais avec remove() il faut passer en argument la valeur de l'élément alors qu'avec pop() il faut argumenter avec son rang (ou indice ou position). Sachant que le premier élément a le rang zéro !

Convertir une chaine en liste

Il faut employer la méthode split().
A défaut de paramètre les espaces sont utilisés comme séparateurs.
Exemple :

Il faut argumenter la méthode split() avec le caractère qui sert de séparateur pour l'élaboration de la liste de destination.
Par défaut le séparateur est l'espace.

Les listes de listes

Et oui, c'est possible. Et vous verrez plus tard que ça peut être très parfois utile ...

J'ai crée une liste nommée "liste_de_listes" qui comprend 3 sous-listes.
Pour afficher successivement chaque sous-liste je suis obligé de créer une boucle.