Un tuple est une séquence immuable, c'est-à-dire que ses éléments ne peuvent pas être modifiés après sa création. Contrairement aux listes, les tuples sont souvent utilisés pour regrouper des éléments hétérogènes, tels que des coordonnées, dans un ensemble fixe et ordonné.
En informatique, un dictionnaire est une structure de données qui stocke des paires clé-valeur, permettant un accès rapide aux données via une clé unique. Il est très utile pour l'organisation des informations où chaque élément peut être récupéré rapidement par son identifiant.
Un tuple est une structure de données très proche des listes : il permet de stocker plusieurs valeurs dans une seule variable.
La différence principale est qu’un tuple est immuable : une fois créé, on ne peut pas modifier ses éléments (ajouter, supprimer ou changer une valeur).
On définit un tuple en utilisant des parenthèses ( )
:
coordonnees = (4, 7)
notes = (15, 12, 18)
Comme pour les listes, on peut accéder aux éléments grâce à leur indice (le premier indice est toujours 0
) :
print(coordonnees[0]) # affiche 4
print(notes[2]) # affiche 18
Un tuple peut contenir des données de types différents :
eleve = ("Alice", 16, "Première")
print(eleve[0]) # "Alice"
Créer deux tuples en Python :
coordonnees
qui contient les valeurs (3, 7)
informations
qui contient les valeurs ("Alice", 15, "Seconde")
Rappel : un tuple se définit avec des parenthèses ()
.
Tests :
# Tests
Affichage :
Console:
Dans un plan, un point est représenté par un tuple (x, y)
.
Écrire une fonction distance_origine
qui prend en paramètre un point et renvoie la distance de ce point à l’origine (0,0)
.
La distance est calculée avec la formule :
$$\sqrt{x^2 + y^2}$$
Exemple :
>>> distance_origine((3, 4))
5.0
Tests :
# Tests
Affichage :
Console:
On représente deux points par des tuples (x, y)
.
Écrire une fonction distance_points
qui prend en paramètres deux tuples et renvoie la distance entre eux.
La distance est calculée avec la formule :
$$\sqrt{(x_2-x_1)^2 + (y_2-y_1)^2}$$
Astuce : on peut utiliser le dépaquetage d’un tuple pour récupérer directement ses valeurs :
point1 = (3, 7)
x1, y1 = point1 # x1 vaut 3 et y1 vaut 7
Exemple :
>>> distance_points((0, 0), (3, 4))
5.0
Tests :
# Tests
Affichage :
Console:
Écrire une fonction meilleure_note
qui prend en entrée une liste de tuples, où chaque tuple contient le nom d’un étudiant et sa note.
La fonction doit retourner un string correspondant au nom de l’étudiant ayant la meilleure note.
Pour simplifier le problème ici, on considérera qu'il est le seul à avoir eu la meilleure note.
Rappel : on peut utiliser l’affectation multiple pour extraire directement le nom et la note d’un tuple :
etudiant = ("Alice", 85)
nom, note = etudiant # nom = "Alice", note = 85
Voici une liste pour tester votre fonction :
student_scores = [
("Alice", 85),
("Bob", 72),
("Carol", 90),
("David", 60),
("Eve", 78),
("Frank", 88),
("Grace", 92),
("Henry", 70),
("Ivy", 68),
("Jack", 82),
("Kelly", 95),
("Leo", 73),
("Mia", 87),
("Nathan", 79),
("Olivia", 91),
("Paul", 67),
("Quinn", 76),
("Ryan", 83),
("Sophia", 89),
("Tyler", 74)
]
Tests :
# Tests
Affichage :
Console:
En Python, un dictionnaire est une structure qui associe une clé à une valeur. Cela permet de retrouver facilement une information grâce à sa clé, un peu comme dans un vrai dictionnaire où on cherche un mot pour en obtenir la définition.
On écrit un dictionnaire avec des accolades { }
, les clés et valeurs étant séparées par :
.
eleve = {
"nom": "Alice",
"age": 16,
"classe": "Première"
}
On accède à une valeur en utilisant sa clé entre crochets :
print(eleve["nom"]) # affiche "Alice"
print(eleve["age"]) # affiche 16
On peut aussi ajouter ou modifier une valeur :
eleve["age"] = 17 # modification
eleve["option"] = "Maths" # ajout d'une nouvelle clé
Enfin, on peut parcourir toutes les clés ou toutes les valeurs :
for cle, valeur in eleve.items():
print(cle, ":", valeur)
Regardons la commande coucou={1:"salut","chocolat":3,6:"avion"}
.
1
, "chocolat"
et 6
sont des clefs.
"salut"
, 3
et "avion"
sont les valeurs associées.
La commande coucou[6]
renvoie "avion"
.
Créer un dictionnaire vide appelé personne_1
puis y ajouter les clés "nom"
, "âge"
et "ville"
avec des valeurs adaptées pour représenter une personne.
Tests :
# Tests
Affichage :
Console:
Créer un dictionnaire qui associe tous les jours de la semaine à leur numéro (1
pour lundi, 2
pour mardi, …, 7
pour dimanche).
Dans ce dictionnaire, le jour est la clé et le numéro est la valeur.
Ensuite, afficher le numéro associé à "dimanche"
.
Tests :
# Tests
Affichage :
Console:
Écrire une fonction couleur_fruit
qui prend en entrée un dictionnaire dico
associant des fruits à leur couleur, ainsi qu’un string nom_fruit
correspondant au nom d’un fruit.
La fonction doit retourner la couleur associée à ce fruit.
Si le fruit n’est pas présent dans le dictionnaire, la fonction retournera "Fruit inconnu"
.
Voici un dictionnaire pour tester votre fonction :
fruits = {
"pomme": "rouge",
"banane": "jaune",
"orange": "orange",
"kiwi": "vert",
"raisin": "violet",
"citron": "jaune",
"fraise": "rouge",
"myrtille": "bleu",
"abricot": "orange",
"poire": "vert"
}
Tests :
# Tests
Affichage :
Console:
Un professeur souhaite analyser les résultats d’un grand test. Pour cela, il dispose d’une liste contenant toutes les notes des élèves.
Écrire une fonction frequences_nbs
qui prend en entrée une liste de nombres (les notes des élèves) et qui retourne un dictionnaire indiquant la fréquence de chaque note.
La fréquence d’une note est égale au nombre d’occurrences de cette note divisé par le nombre total de notes.
Tests :
# Tests
Affichage :
Console:
Écrire une fonction population_totale
qui prend comme paramètre un dictionnaire dont les clés
sont des pays et les valeurs associées leur population.
La fonction doit renvoyer un entier correspondant à la population totale.
Voici un exemple de dictionnaire pouvant être utilisé pour tester la fonction :
country_populations = {
"Chine": 1444216107,
"Inde": 1393409038,
"États-Unis": 332915073,
"Indonésie": 276361783,
"Pakistan": 225199937,
"Brésil": 213993437,
"Nigéria": 211400708,
"Bangladesh": 166303498,
"Russie": 145912025,
"Mexique": 130262216,
"Japon": 126050804,
"Éthiopie": 123849456,
"Philippines": 113530590,
"Égypte": 112411076,
"Vietnam": 97580000,
"République démocratique du Congo": 89561403,
"Turquie": 84495243,
"Iran": 85075571,
"Allemagne": 83900473,
"Thaïlande": 69953881,
"France": 67406000,
"Monaco": 38300
}
Tests :
# Tests
Affichage :
Console:
Écrire une fonction produit_plus_cher
qui prend en entrée un dictionnaire de produits et leur prix,
et qui retourne le nom du produit le plus cher.
Voici un dictionnaire pour tester la fonction :
products = {
"lait": 1.50,
"pain": 1.20,
"beurre": 2.30,
"fromage": 3.50,
"jus de fruit": 2.80,
"pâtes": 1.00,
"riz": 1.10
}
Tests :
# Tests
Affichage :
Console:
Dans le jeu de cartes la bataille, la carte "9" l'emporte sur la carte "7" et la carte "dame" l'emporte sur la carte "5".
Créer un dictionnaire qui fait correspondre à une valeur entre 2 et 14 une carte.
Ainsi :
2
à 10
sont associés aux strings "2"
à "10"
.11
est associé à "valet"
, 12
à "dame"
, 13
à "roi"
et 14
à "as"
.Programmer une fonction bataille
qui prend en paramètres deux entiers entre 2 et 14 et qui
retourne le résultat d'une bataille comme dans les exemples ci-dessous.
Exemples :
>>> bataille(3,11)
["Le premier joueur a la carte 3 et le deuxième joueur a la carte valet.",
"Le deuxième joueur l emporte avec la carte valet."]
>>> bataille(9,9)
["Le premier joueur a la carte 9 et le deuxième joueur a la carte 9.",
"Egalité entre les deux joueurs."]
Tests :
# Tests
Affichage :
Console:
Le nombre d’occurrences d’un caractère dans une chaîne est le nombre d’apparitions de ce caractère dans la chaîne.
Exemples :
o
dans bonjour
est 2 ;b
dans Bébé
est 1 ;B
dans Bébé
est 1 ;
dans Hello world !
est 2.On souhaite stocker ces nombres d’occurrences dans un dictionnaire dont les clefs sont les caractères de la chaîne et les valeurs le nombre d’occurrences de ces caractères.
Par exemple : avec la phrase Hello world !
le dictionnaire est le suivant :
{'H': 1, 'e': 1, 'l': 3, 'o': 2, ' ': 2, 'w': 1, 'r': 1, 'd': 1, '!': 1}
L’ordre des clefs n’a pas d’importance.
Écrire une fonction nbr_occurrences
prenant comme paramètre une chaîne de
caractères chaine
et renvoyant le dictionnaire des nombres d’occurrences des
caractères de cette chaîne.
Tests :
# Tests
Affichage :
Console:
Écrire une fonction regrouper_mots_par_longueur
qui prend en entrée une liste de mots
et retourne un dictionnaire où :
Par exemple, si on appelle la fonction sur la liste suivante :
liste_animaux = ["chat", "chien", "éléphant", "souris", "cheval", "oiseau", "abeille", "tigre", "serpent"]
Alors la fonction pourra renvoyer un dictionnaire du type :
{4: ["chat"],
5: ["chien", "tigre"],
6: ["souris", "cheval"],
7: ["oiseau", "serpent", "abeille"],
8: ["éléphant"]}
(L’ordre des clés n’a pas d’importance.)
Tests :
# Tests
Affichage :
Console:
Écrire une fonction regrouper_etudiants_par_note
qui prend en entrée une liste de dictionnaires représentant des étudiants (chaque dictionnaire contient un "nom"
et une "note"
), et retourne un dictionnaire qui associe chaque note à une liste des étudiants ayant obtenu cette note.
Une liste d'étudiants est donnée pour tester la fonction.
Tests :
# Tests
Affichage :
Console: