Retour au cours

Cours 6

Les structures de données

R06 - Les listes et les chaînes de caractères

Les listes

En Python, la liste est une structure de données qui agit comme un conteneur de données. On peut comparer la liste à un livre dont les données sont les pages : dans notre cas, des chaînes de caractères, des int, des float, etc.

L'utilisation des listes est critique en programmation, car elles permettent de regrouper plusieurs valeurs (données) dans une seule variable et d'y effectuer des opérations, principalement à l'aide des boucles.

Il est possible de faire plusieurs actions sur les listes, telles que :

  • Ajouter une donnée
  • Retirer une donnée
  • Modifier une donnée
  • Consulter une donnée

Création d'une liste

Pour créer une liste en Python, il suffit de créer une nouvelle variable et de lui assigner la valeur [], ce qui représente une liste vide.

Pour mettre des valeurs de départ dans la liste, on les écrit entre les crochets, par exemple : [1, 2, 3] ou ["patate", "jambon", "miel"].

Code

# Initialisation d'une nouvelle liste vide listeVide : list = [] # Initialisation d'une nouvelle liste qui contient les entiers 1, 2, 3 et 4 listeEntiers : list[int] = [1, 2, 3, 4]

Les indices

Suivant l'analogie du livre, une liste est composée de plusieurs éléments ; chaque élément a une position dans la liste, désignée par son indice (un peu comme le numéro d'une page). Les indices commencent toujours à zéro et se terminent à n - 1, où n est le nombre d'éléments de la liste.

Prenons par exemple la liste listeEntiers créée précédemment :

listeEntiers : list[int] = [1, 2, 3, 4]
  • Combien d'éléments y a-t-il dans cette liste ? 4
  • Quel sera son indice maximal ? 3 (soit 4 - 1)
Indice0123
Valeur1234

Consulter une valeur de la liste

Pour consulter une valeur de la liste, on utilise son indice entre crochets !

Code

# Initialisation de la liste listeEntiers : list[int] = [1, 2, 3, 4] # Troisième valeur (indice 2) nombreEntier : int = listeEntiers[2] # Afficher la valeur dans la console print(nombreEntier)

Résultat

3
Indice0123
Valeur1234

Ajout d'une valeur (avec append)

Pour ajouter une valeur, on utilise la fonction .append(valeur). La valeur s'ajoute à la fin de la liste !

Code

# Initialisation de la liste listeEntiers : list[int] = [1, 2, 3, 4] # Ajout de la valeur 32 à la fin de la liste listeEntiers.append(32)

La liste après

Indice01234
Valeur123432

Retirer une valeur (avec remove)

Pour retirer une valeur d'une liste, on utilise la fonction .remove(valeur). Elle retire la première occurrence de la valeur dans la liste.

Code

# Initialisation de la liste listeEntiers : list[int] = [1, 2, 3, 4] # Retire la première occurrence de la valeur 3 de la liste listeEntiers.remove(3)

La liste après

Indice012
Valeur124

Les valeurs qui suivaient reculent d'une case : 4 passe de l'indice 3 à l'indice 2.

Insérer une valeur (avec insert)

Pour insérer une valeur dans une liste, on utilise la fonction .insert(indice, valeur). La valeur prend la place de l'indice donné et les suivantes avancent d'une case.

Code

# Initialisation de la liste listeEntiers : list[int] = [1, 2, 3, 4] # Insère 15 à l'avant-dernière case de la liste (indice 3) listeEntiers.insert(3, 15)

La liste après

Indice01234
Valeur123154

L'indice vient en premier : insert(15, 3) ajouterait plutôt la valeur 3 à la fin.

Retirer une valeur (avec pop)

Pour retirer la valeur qui se trouve à un indice donné, on utilise la fonction .pop(indice).

Code

# Initialisation de la liste listeEntiers : list[int] = [1, 2, 3, 4] # Retire la valeur à l'indice 1 de la liste listeEntiers.pop(1)

La liste après

Indice012
Valeur134

remove cherche une valeur, pop vise un indice.

Modifier une valeur

Pour modifier une valeur de la liste, on écrit l'indice de la valeur à modifier entre crochets, puis on lui assigne une nouvelle valeur !

Code

# Initialisation de la liste listeEntiers : list[int] = [1, 2, 3, 4] # Modification d'une valeur listeEntiers[2] = 7

La liste après

Indice0123
Valeur1274

La taille de la liste

Pour obtenir la taille de la liste, on utilise la fonction len(liste). Elle retourne le nombre d'éléments actuellement dans la liste.

Code

# Initialisation de la liste listeNoms : list[str] = ["Pierre", "Jean", "Jacques", "Julie"] # Obtenir la taille de la liste tailleListe : int = len(listeNoms) # Afficher la taille dans la console print(tailleListe)

Résultat

4
Indice0123
ValeurPierreJeanJacquesJulie

Parcourir une liste

Les listes s'utilisent dans les boucles : c'est primordial pour effectuer des actions à répétition sur les valeurs d'une liste. Voici deux façons de parcourir la liste :

À l'aide d'un while

listeEntiers : list[int] = [15, 32, 12, 64] i : int = 0 while i < len(listeEntiers): print(listeEntiers[i]) i += 1

À l'aide d'un for

for nombre in listeEntiers: print(nombre)

Résultat (le même pour les deux)

15 32 12 64

i++ n'existe pas en Python : on écrit i += 1.

Les chaînes de caractères

Les strings

Les chaînes de caractères

Les chaînes de caractères contiennent des données sous forme de texte. En Python, une chaîne de caractères est une séquence de caractères, c'est-à-dire une suite ordonnée de lettres, de chiffres, de symboles ou d'espaces.

On peut initialiser une chaîne de plusieurs façons :

# Avec des guillemets simples chaine1 : str = 'Bonjour!' # Avec des guillemets doubles chaine2 : str = "Bonjour!" # Ces deux façons sont équivalentes
# Chaîne sur plusieurs lignes chaineML : str = """Bonjour! Bienvenue au cours sur les chaînes de caractères en Python! Ceci est une chaîne qui s'étend sur plusieurs lignes pour aider avec la lisibilité!"""

Les chaînes de caractères

On peut manipuler une chaîne un peu comme une liste : chaque caractère est à un indice dans la chaîne, et on peut le consulter.

Attention ! On ne peut pas modifier une chaîne comme une liste : chaine[0] = 'a' provoque une erreur.

# Initialisation de la variable chaine : str = 'Bonjour!' premiereLettre : str = chaine[0] # 'B' deuxiemeLettre : str = chaine[1] # 'o'
Indice01234567
ValeurBonjour!

Nous verrons comment faire des opérations avancées sur les chaînes de caractères plus tard dans la session !

Exercices

Quelle sera la sortie dans la console du code suivant ?

Code

tableauEntiers : list[int] = [1, 2, 3, 4] print(tableauEntiers[2])

Réponse

3

Exercices

Quelle sera la sortie dans la console du code suivant, et quelles seront les valeurs de la liste ?

Code

tableauEntiers : list[int] = [1, 2, 3, 4] tableauEntiers[2] = 57 print(tableauEntiers[1])

Réponse

2
Indice0123
Valeur12574

Exercices

Quelle sera la sortie dans la console du code suivant ?

Code

tableauEntiers : list[int] = [1, 2, 3, 4] for nombre in tableauEntiers: nombre = nombre + 10 print(nombre)

Réponse

11 12 13 14

Exercices

Quelle sera la sortie dans la console du code suivant ?

Code

listeNoms : list[str] = ["Pierre", "Jean", "Jacques", "Julie"] listeNoms.append("Luc") listeNoms.pop(2) listeNoms[2] = "Ti-Paul" for nom in listeNoms: print(nom)

Réponse

Pierre Jean Ti-Paul Luc

Laboratoire #5

Laboratoire #5 - Listes et chaînes de caractères

Cinq programmes : remplir et afficher une liste, calculer une moyenne sans sum(), trier des entiers en multiples de 3 et de 5, compter les voyelles d'un mot et permuter deux valeurs d'une liste.

Consulter le laboratoire en ligne · Télécharger le calepin (.ipynb)

Pondération : 3 % de la note finale.