Les listes et les dictionnaires

Les listes (souvent appelées tableaux dans les autres langages) vont nous permettre de stocker plusieurs valeurs (chaîne, nombre) dans une structure unique :

maListe1 = ["pomme","orange","fraise"]

ou

maListe2=[56,76,45,89]

Pour lire le contenu d'une liste, il suffit d'utiliser un « indice de position » (le 1er élément de la liste a l'indice 0, le deuxième élément a l'indice 1...). On aura : maListe [indice de position].

À faire vous-même 12.1

Soit le programme suivant :


maListe=["pomme","orange","fraise"]
print(maListe[1])
			

Quel est le résultat attendu après l'exécution de ce programme ? Vérifiez votre réponse.


Oublier que l'indice de position du 1er élément d'une liste est 0 et pas 1 est une erreur « classique ».

À faire vous-même 12.2

Écrire un programme qui demande à l'utilisateur un numéro de mois (de 1 à 12), puis affiche : « Vous avez sélectionné le mois de : xxxxxx » (avec xxxxxx janvier si l'utilisateur a choisi 1, août si l'utilisateur a choisi 8...).


À faire vous-même 12.3

Soit le programme suivant :


semaine=['lundi','mardi','mercredi','jeudi','vendredi']
i=0
while i<5:
	print(semaine[i])
	i=i+1
print("C'est terminé")

			

Quel est le résultat attendu après l'exécution de ce programme ? Vérifiez votre réponse.


La boucle for va nous permettre de parcourir les éléments d'une liste plus facilement qu'avec une boucle while.

À faire vous-même 12.4

Soit le programme suivant :


semaine=['lundi','mardi','mercredi','jeudi','vendredi']
for jour in semaine:
	print(jour)
print("C'est terminé")
			

La variable "jour" prendra successivement toutes les valeurs contenues dans la liste semaine.

Quel est le résultat attendu après l'exécution de ce programme ? Vérifiez votre réponse.


Il est possible de connaître la taille d'une liste en utilisant l'instruction len(nomDeLaListe).

À faire vous-même 12.5

Soit le programme suivant :


semaine=['lundi','mardi','mercredi','jeudi','vendredi']
print(len(semaine))
			

Quel est le résultat attendu après l'exécution de ce programme ? Vérifiez votre réponse.


Il est possible d'ajouter un élément à une liste (en fin de liste plus précisément) grâce à append. Pour ajouter l'élément b à la fin de la liste L, il faut utiliser une syntaxe un peu particulière : L.append(b)

À faire vous-même 12.6

Soit le programme suivant :


semaine=['lundi','mardi','mercredi','jeudi','vendredi']
for jour in semaine:
	print(jour)
print("Rajoutons le samedi")
semaine.append('samedi')
for jour in semaine:
	print(jour)
print("Voilà, comme vous pouvez le constater c'est chose faite !")
			

Quel est le résultat attendu après l'exécution de ce programme ? Vérifiez votre réponse.


Les dictionnaires

Les dictionnaires ressemblent aux listes. Chaque élément d'un dictionnaire est composé de 2 parties, on parle de pairs "clé/valeur". Voici un exemple de dictionnaire :


monDico={"nom":"Durand", "prenom":"Christophe", "date de naissance":"29/02/1981"}
			

Comme vous pouvez le constater, nous utilisons des accolades {} pour définir le début et la fin du dictionnaire (alors que nous utilisons des crochets [] pour les listes). Dans le dictionnaire ci-dessus, "nom", "prenom" et "date de naissance" sont des clés et "Durand", "Christophe" et "29/02/1981" sont des valeurs. La clé "nom" est associée à la valeur "Durand", la clé "prenom" est associée à la valeur "Christophe" et la clé "date de naissance" est associée à la valeur "29/02/1981". Les clés sont des chaînes de caractères ou des nombres. Les valeurs peuvent être des chaînes de caractères, des nombres, des booléens...

Pour créer un dictionnaire, il est aussi possible de procéder comme suit :


monDico={}
monDico["nom"]="Durand"
monDico["prenom"]="Christophe"
monDico["date de naissance"]="29/02/1981"
				

Pour afficher le contenu d'un dictionnaire, un simple "print" peut faire l'affaire

À faire vous-même 12.7

Soit le programme suivant :


monDico={"nom":"Durand", "prenom":"Christophe", "date de naissance":"29/02/1981"}
print(monDico)
				

Quel est le résultat attendu après l'exécution de ce programme ? Vérifiez votre réponse.


Il est évidemment possible d'afficher la valeur associée à une clé :

À faire vous-même 12.8

Soit le programme suivant :


monDico={"nom":"Durand", "prenom":"Christophe", "date de naissance":"29/02/1981"}
print("Bonjour je m'appelle "+monDico["prenom"]+" "+monDico["nom"]+", je suis né le "+monDico["date de naissance"])
				

Quel est le résultat attendu après l'exécution de ce programme ? Vérifiez votre réponse.


Il est facile d'ajouter un élément à un dictionnaire :

À faire vous-même 12.9

Soit le programme suivant :


monDico={"nom":"Durand", "prenom":"Christophe", "date de naissance":"29/02/1981"}
print("Bonjour je m'appelle "+monDico["prenom"]+" "+monDico["nom"]+", je suis né le "+monDico["date de naissance"])
monDico['lieu naissance']="Bonneville"
print ("à "+monDico["lieu naissance"])
				

Quel est le résultat attendu après l'exécution de ce programme ? Vérifiez votre réponse.


Le mot clé "del" permet du supprimer une paire "clé/valeur"

À faire vous-même 12.10

Soit le programme suivant :


monDico={"nom":"Durand", "prenom":"Christophe", "date de naissance":"29/02/1981"}
print("Bonjour je m'appelle "+monDico["prenom"]+" "+monDico["nom"]+", je suis né le "+monDico["date de naissance"])
monDico['lieu naissance']="Bonneville"
print ("à "+monDico["lieu naissance"])
				

Quel est le résultat attendu après l'exécution de ce programme ? Vérifiez votre réponse.


Le mot clé "del" permet du supprimer une paire "clé/valeur"

À faire vous-même 12.11

Soit le programme suivant :


mesFruits={"poire":3, "pomme":4, "orange":2}
print("avant le del")
print(mesFruits)
del mesFruits["pomme"]
print("après le del")
print(mesFruits)
				

Quel est le résultat attendu après l'exécution de ce programme ? Vérifiez votre réponse.


Il est possible de modifier une valeur :

À faire vous-même 12.12

Soit le programme suivant :


mesFruits={"poire":3, "pomme":4, "orange":2}
print(mesFruits)
print ("Nous avons vendu une pomme")
mesFruits["pomme"]=mesFruits["pomme"]-1
print(mesFruits)
				

Quel est le résultat attendu après l'exécution de ce programme ? Vérifiez votre réponse.


Il est possible de parcourir "automatiquement" un dictionnaire à l'aide d'une boucle for. Ce parcours peut se faire selon les clés ou les valeurs. Commençons par parcourir les clés à l'aide de la méthode (nous verrons la notion de méthode un peu plus tard) keys()

À faire vous-même 12.13

Tester le programme suivant :


mesFruits={"poire":3, "pomme":4, "orange":2}
for fruit in mesFruits.keys():
	print (fruit)
					

La méthode values() permet de parcourir le dictionnaire selon les valeurs

À faire vous-même 12.14

Tester le programme suivant :


mesFruits={"poire":3, "pomme":4, "orange":2}
for qte in mesFruits.values():
	print (qte)
					

Enfin, il est possible de parcourir un dictionnaire à la fois sur les clés et les valeurs en utilisant la méthode item().

À faire vous-même 12.15

Tester le programme suivant :


mesFruits={"poire":3, "pomme":4, "orange":2}
print ("Stock de fruits :")
for fruit,qte in mesFruits.items():
	print (fruit+" : "+str(qte))