Supposons qu'on veuille écrire un programme gérant une liste de courses à faire, on ne sait pas combien d'éléments sont présents dans cette liste de courses. Bien sûr, on pourrait écrire quelque chose comme :
# Une liste de courses ...
item1 = "oignons"
item2 = "huile"
item3 = "sel"
item4 = "chips"
item5 = "orange"
Cette solution n'est pas satisfaisante, en effet, si la liste contient plus de 5 items, il faudrait éditer le programme et y créer une variable item6
.
De façon générale, on aimerait :
Une solution bien plus intéressante est d'utiliser une liste de Python. Comme son nom l'indique, il s'agit d'une variable pouvant contenir plusieurs valeurs. Elle se note entre crochets (caractère [ et ]) et les valeurs qu'elle contient son séparés par des virgules.
courses=['oignons','huile','sel','chips','orange']
Nous venons de créer une variable de type list qui représente notre liste de courses. Cette représentation est bien plus efficace que la précédente car nous allons découvrir que l'accès, l'ajout, l'insertion, la suppression d'un élément de cette liste se fait facilement en Python
la_liste = [valeur1 , valeur2, valeur3, ...]
specialites
contenant les noms de vos trois enseignements de spécialité # Votre réponses ici
# Attention c'est un exemple. Vous devez mettre vos spécialités
specialites = ["maths", "nsi", "hggsp"]
specialites[2]
temperatures
contenant les valeurs numériques suivantes : 27, 18, 32, 29, 27, 27 et 28# Votre réponse ici
temperatures = [27, 18, 32, 29, 27, 27, 28]
On a crée jusqu'ici, des listes de chaines de caractères et des listes de nombres, on peut tout à fait mélanger les deux, et les éléments d'une liste ne sont donc pas forcément du même type :
une_date = [5,"Mars",1953]
Sur cet exemple le premier et le dernier élément de la liste sont des entiers (int
), mais l'élément du milieu est une chaine de caractère (str
)
Les valeurs stockées dans une liste sont numérotées à partir de 0 et on peut accéder aux valeurs par leur numéro en utilisant la syntaxe suivante :
<liste>[numero]
Reprenons l'exemple de notre liste de courses :
courses=['oignons','huile','sel','chips','orange']
Pour afficher le deuxième élément de la liste, on peut donc écrire :
courses[1]
La figure ci-dessous illustre le fonctionnement des listes de Python :
Retenez bien la syntaxe, on indique le nom de la liste puis l'indice de l'élément entre crochets
Attention cependant à ne pas dépasser le nombre d'éléments de la liste, sinon Python renverra une erreur :
courses[5]
Notez bien le nom de l'erreur : IndexError pour savoir ce qu'elle signifie lorsque vous la rencontrerez.
On peut accéder aux éléments d'une liste à partir de la fin en utilisant des numéros négatifs :
ma_liste[-1]
sera le dernier élement de ma_liste
ma_liste[-2]
sera l'avant dernier Donc pour afficher le dernier élément de la liste de courses (c'est à dire Orange) :
courses[-1]
<liste>[numero]
ma_liste
est donc ma_liste[0]
# Votre réponse ici
courses[3]
semaine
# Votre réponse ici
semaine = ["Lundi", "Mardi", "Mercredi", "Jeudi", "Vendredi", "Samedi", "Dimanche"]
semaine
crée ci-dessus# Votre réponse ici
print(semaine[6])
print(semaine[len(semaine) - 1]) # le dernier indice d'une liste est len(liste) - 1
print(semaine[-1])
jour, mois
et annee
les éléments correspondant de la liste une_date
une_date = [5,"Mars",1953]
jour = une_date[0]
mois = une_date[1]
annee = une_date[-1]
print(jour, mois, annee)
Nous avons déjà rencontré la fonction len
qui donne la longueur d'une chaîne de caractères. C'est exactement la même instruction qui permet de déterminer le nombre d'éléments d'une liste :
len(courses)
Il y a donc 5 choses à acheter dans notre liste de courses !
len
renvoie la longueur de la liste passée en paramètre. Par exemple len(["N","S","I"])
renvoie 3 car cette liste contient trois éléments.
alphabet
, ajouter l'instruction permettant de vérifier qu'il y a bien 26 caractères dans cette liste # Votre réponse ici
alphabet = ['a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z']
len(alphabet)
# Votre réponse ici
print(alphabet[23])
print(alphabet[-3])
alphabet[26]
renvoie une erreur. Expliquer pourquoi # Votre réponse ici
alphabet[26]
Les listes sont modifiables.
On peut par exemple changer un élément de notre liste en le repérant par son numéro.
Dans notre exemple, courses[3]
est chips, si nous voulons remplacer les chips par des olives dans notre liste de courses, nous pouvons simplement utiliser l'affectation habituelle avec =
:
courses[3] = 'olives'
courses
# Votre réponse ici
courses[2] = 'poivre'
courses
On peut aussi rajouter un élément à cette liste de courses grâce à append
# Il faut prendre aussi du persil !
courses.append('persil')
Affichons la liste avec print pour constater que le persil y figure maintenant :
courses
Et bien evidemment on peut supprimer un élément de cette liste grâce à remove
#En fait ce n'est pas la peine de prendre du poivre
courses.remove("poivre")
courses
courses.append('poivre')
courses.append('poivre')
courses
while 'poivre' in courses:
courses.remove("poivre")
courses
Attention : essayer de supprimer un élément qui ne figure pas dans la liste renverra une erreur.
# Il n'y a pas de vanille dans notre liste de courses, aussi tenter de l'enlever renverra une erreur
courses.remove("vanille")
invites
représentant les invités d'Alice. # Vos réponses ici
# Question 11
invites = ["Hector", "Paul", "Jules", "Marie", "Pierre", "Alphonsine", "Dorothée", "Eva", "Jeannette", "Kathy", "Carole", "Zoé"]
# Question 12
invites.append("Christian")
invites.append("Louis")
invites.remove("Kathy")
print(invites)
# Question 13
len(invites)
Parfois, on aura besoin d'insérer un élément à un emplacement particulier dans la liste, dans ce cas, il faut utiliser insert
en donnant entre parenthèses l'emplacement où on désire insérer un élément. Par exemple supposons qu'on dispose d'une liste triée de notes :
notes = [8, 11, 12, 15, 17]
Si on veut insérer dans cette liste la note 14, on doit le faire après le 12 pour conserver l'ordre, il faut donc insérer à l'indice 3 :
notes.insert(3,14)
notes
append
, la syntaxe est : <liste>.append(<nouvel_element>)
.
remove
, la syntaxe est : <liste>.remove(<element>)
. Tenter de supprimer un élément à un indice inexistant renvoie une erreur.
insert
, la syntaxe est : <liste>.insert(<indice>,<nouvel_element>)
append
.meubles = ["armoire","chaise","étagère","bureau","lit"]
# Ecrire les deux append en dessous
meubles.append("table")
meubles.append("tabouret")
meubles
# Votre réponse ici
meubles.remove("lit")
meubles
# Votre réponse ici
a_voir=['Matrix','Starwars','Ironman2']
a_voir.insert(2, 'Ironman')
a_voir
remove
, supprimer tous les films de la liste a_voir
. Que se passe-t-il lorsqu'on affiche maintenant la liste a_voir
?# Votre réponse ici
a_voir.remove('Matrix')
a_voir.remove('Starwars')
a_voir.remove('Ironman')
a_voir.remove('Ironman2')
a_voir # est vide
cpt = len(a_voir) - 1
while cpt >= 0:
a_voir.remove(a_voir[cpt])
cpt = cpt - 1
a_voir
Pour prendre un élément de la liste par son numéro on dispose de pop(numero)
, cela a deux effet :
Si on ne demande pas de valeur pour numero
, c'est le dernier élément de la liste qui sera supprimé et renvoyé.
# Suppression de l'élément situé au début de la liste et récupération dans 'item'
item = courses.pop(0)
# Vérifions que tout s'est passé comme prévu (item doit contenir le premier élément de la liste)
item
# et le premier élément ne figure plus dans la liste
courses
# Si on ne donne pas de numéro, c'est à dire en faisant courses.pop() c'est le dernier élément qui est concerné
item = courses.pop()
item
courses
<ma_liste>.pop(numero)
a deux effets numero
Créer une liste a_faire
contenant les éléments suivants : "réviser les listes de python"
, "préparer l'évaluation d'anglais"
, "travailler le projet de NSI"
, "Faire l'exercice de maths"
Ajouter à cet liste les éléments suivants "regarder ma série préférée"
, "aller à la plage"
.
Quel sera le résultat de l'instruction elt = a_faire.pop()
?
# Vos réponses ici
# Question 18
a_faire = ["réviser les listes de python", "préparer l'évaluation d'anglais", "travailler le projet de NSI", "Faire l'exercice de maths"]
# Question 19
a_faire.append("regarder ma série préférée")
a_faire.append("aller à la plage")
a_faire
# Question 20
# On va enlever la dernière chose à faire et la sauvgarder dans la vatiable elt
elt = a_faire.pop()
print(a_faire)
elt