On considère le dictionnaire suivant qui contient différents fruits ainsi que leurs quantités.
fruits = {"pommes": 8, "melons": 3, "poires": 6}
Répondez aux questions suivantes sans exécuter les scripts proposés. Vous les exécuterez pour vérifier vos réponses.
fruits = {'pommes': 4, 'melons': 3, 'poires': 6, 'clémentines': 16}
for c in fruits.keys():
print(c)
fruits = {'pommes': 4, 'melons': 3, 'poires': 6, 'clémentines': 16}
for cle, valeur in fruits.items():
print(cle, "->", valeur)
fruits = {'pommes': 4, 'melons': 3, 'poires': 6, 'clémentines': 16}
for v in fruits.values():
print(v)
On considère qu'il faut ajouter un fruit sur la liste des courses s'il en reste 4 ou moins.
fruits = {'pommes': 4, 'melons': 3, 'poires': 6, 'clémentines': 16}
# à compléter
liste_courses(fruits)
qui prend en paramètre un dictionnaire fruits
et qui renvoie un tableau avec les fruits de la liste de courses. def liste_courses(fruits):
# ------------
# à compléter
# ------------
# TEST :
fruits = {'pommes': 4, 'melons': 3, 'poires': 6, 'clémentines': 16}
liste_courses(fruits)
Voici deux dictionnaires :
athletes = {"Mike": (1.75, 68), "John": (1.89, 93), "Kate": (1.67, 62)}
sportifs = {"Mike": {"taille": 1.75,"poids": 68}, "John": {"taille": 1.89,"poids": 93}, "Kate": {"taille": 1.67,"poids": 62}}
athletes
et sportifs
? De quels types sont les valeurs de ces deux dictionnaires ?Réponses :
athletes
?
sportifs
?
Le Scrabble est un jeu de société où l'on doit former des mots avec tirage aléatoire de lettres, chaque lettre valant un certain nombre de points. Le dictionnaire scrabble
contient cette association entre une lettre et son nombre de points.
scrabble = {'A': 1, 'B': 3, 'C': 3, 'D': 2, 'E': 1, 'F': 4, 'G': 2, 'H': 4, 'I': 1, 'J': 8, 'K': 10, 'L': 1, 'M': 2, 'N': 1, 'O': 1, 'P': 3, 'Q': 8, 'R': 1, 'S': 1, 'T': 1, 'U': 1, 'V': 4, 'W': 10, 'X': 10, 'Y': 10, 'Z': 10}
Ecrivez une fonction points(mot)
qui renvoie le nombre de points au scrabble de mot
, qui est une chaîne de caractères majuscules.
*Par exemple, le mot "ARBRE" doit rapporter 7 points, le mot "XYLOPHONE" doit rapporter 32 points.
On considère la variable personnages
suivante qui réunit quelques informations sur des personnalités (les âges sont fictifs, vous l'aurez compris).
personnages = [{'nom': 'Einstein', 'prénom': 'Albert', 'âge': '35', 'genre': 'm'},
{'nom': 'Hamilton', 'prénom': 'Margaret', 'âge': '23', 'genre': 'f'},
{'nom': 'Nelson', 'prénom': 'Ted', 'âge': '64', 'genre': 'm'},
{'nom': 'Curie', 'prénom': 'Marie', 'âge': '41', 'genre': 'f'}]
personnages
? Quel est le type des éléments de personnages
?Réponse :
p
à chaque tour de boucle ? Quel est le rôle de ce programme ?for p in personnages:
if int(p['âge']) <= 40:
print(p['nom'], p['prénom'])
personnages
.
age_moyen(personnages)
qui renvoie l'âge moyen des personnalités du tableau personnages
entré en paramètre. On doit trouver 40,75 ans.
Un cas d’utilisation typique des dictionnaires consiste à compter les occurrences des éléments d’un tableau.
Considérons par exemple le tableau suivant :
['b', 'c', 'e', 'b', 'c', 'j', 'd', 'b', 'j', 'a', 'b']
Dans cette liste le caractère 'b' est par exemple répété quatre fois, et le 'j' deux fois, etc. L'objectif est de définir une fonction occurrences(t)
qui renvoie un dictionnaire avec le nombre d'occurences de chaque élément du tableau t
entrée en paramètre.
Par exemple, la fonction occurences
appliquée au tableau précédent
occurrences(['b', 'c', 'e', 'b', 'c', 'j', 'd', 'b', 'j', 'a', 'b'])
doit renvoyer le dictionnaire :
{'b': 4, 'a': 1, 'c': 2, 'e': 1, 'j': 2, 'd': 1}
Réponse :
occurrences(t)
et testez-la sur un tableau de caractères.
L'idée est désormais d'appliquer cette fonction pour compter le nombre d'occurences de chaque mot dans le texte du Tour du monde en 80 jours de Jules Verne.
Commencez par télécharger le fichier texte de l'oeuvre sur le site info-mounier.fr. Par souci de simplification, le texte ne contient aucun signe de ponctuation. De manière générale, le site du Projet Gutenberg permet de récupérer librement le texte de plusieurs milliers d'oeuvres du domaine public : https://www.gutenberg.org.
On va d'abord transformer ce fichier en un tableau de mots. Pour cela, il suffit d'ouvrir le texte de l'oeuvre, en lire le contenu sous la forme d'une unique chaîne de caractères avec la méthode read()
, puis de la transformer en un tableau de mots grâce à la méthode split()
, avant de fermer le fichier.
f = open("ltdme80j.txt", mode = "r", encoding = "utf-8")
texte = f.read()
tab = texte.split()
f.close()
#print(texte)
print(tab)
occurences
à ce tableau pour récupérer un dictionnaire d
du nombre d'occurences de chaque mot.
mot_6_lettres_plus_frequent(d)
qui renvoie le mot de 6 lettres les plus fréquent dans l'oeuvre de Jules Verne ainsi que son nombre d'occurence. (réponse : 'heures' avec 243 occurrences)
mot_plus_frequent(d, k)
qui renvoie le mot de k
lettres le plus présent dans le dictionnaire d
.
Références
Germain BECKER & Sébastien POINT, Lycée Mounier, ANGERS