🎧 TP : Structures Imbriquées (Spotify)
🎯 Objectif
Comprendre comment naviguer dans des données complexes : une liste de dictionnaires, où chaque dictionnaire contient lui-même des listes.
C'est exactement comme cela que Spotify ou Netflix stockent vos données !
1. Analyse de la Structure
Voici notre base de données musicale spotify_db. C'est une liste qui contient 3 dictionnaires (les artistes).
spotify_db = [
{
"nom": "Orelsan",
"genre": "Rap",
"albums": ["Civilisation", "La fête est finie"],
"top_titres": [
{"titre": "Basique", "ecoutes": 15000000},
{"titre": "La Terre est ronde", "ecoutes": 12000000}
]
},
{
"nom": "Angèle",
"genre": "Pop",
"albums": ["Brol", "Nonante-Cinq"],
"top_titres": [
{"titre": "Bruxelles je t'aime", "ecoutes": 18000000},
{"titre": "Balance ton quoi", "ecoutes": 20000000}
]
},
{
"nom": "The Weeknd",
"genre": "RnB",
"albums": ["After Hours", "Starboy"],
"top_titres": [
{"titre": "Blinding Lights", "ecoutes": 90000000},
{"titre": "Save Your Tears", "ecoutes": 85000000}
]
}
]
🧠 Comment lire ça ?
Imaginez que vous êtes un GPS. Pour trouver une info, vous devez suivre le chemin étape par étape.
spotify_dbest une Liste[...]. Donc on utilise un indice[0],[1], etc.spotify_db[0]est un Dictionnaire{...}(C'est Orelsan). Donc on utilise une clé["nom"],["albums"].spotify_db[0]["albums"]est une Liste[...]. Donc on utilise un indice.
Schéma Visuel :
spotify_db (Liste)
│
├── [0] (Dictionnaire : Orelsan)
│ ├── "nom": "Orelsan"
│ ├── "albums" (Liste) ───► [0]: "Civilisation"
│ │ [1]: "La fête est finie"
│
├── [1] (Dictionnaire : Angèle)
│ ├── "nom": "Angèle"
│ ...
Exemple : Je veux le premier album d'Angèle.
- Angèle est le 2ème élément de la liste principale ->
spotify_db[1] - Je veux ses albums ->
spotify_db[1]["albums"](C'est une liste :["Brol", "Nonante-Cinq"]) - Je veux le premier ->
spotify_db[1]["albums"][0] - Résultat :
"Brol"
2. Exercices d'Échauffement (Lecture)
Sans utiliser de boucle, écrire les instructions pour afficher :
- Le genre musical de The Weeknd.
- Le deuxième album d'Orelsan ("La fête est finie").
- Le nombre d'écoutes de "Balance ton quoi" (Angèle).
Astuce : Procéder étape par étape. Trouver d'abord l'artiste, puis la clé, puis l'indice...
3. Exercices Avancés (Listes dans Dictionnaires)
Ici, on va devoir entrer dans les sous-listes. C'est souvent là que ça bloque ! Rappelez-vous : Si c'est une liste, il faut (souvent) une boucle pour la parcourir.
L'objectif est d'afficher tous les albums présents dans la base de données, peu importe l'artiste.
- Parcourir chaque artiste.
- Pour chaque artiste, parcourir sa liste d'albums.
- Afficher le nom de l'album.
4. Défis Experts (Calculs & Filtrage)
Maintenant, on mélange tout : conditions if, boucles for et accès aux dictionnaires !
Afficher le nom de tous les artistes dont le genre est "Pop".
- Parcourir la liste des artistes.
- Si le genre de l'artiste est égal à "Pop"...
- ... Afficher son nom.
5. Défis Ultimes (Data Analyst) 👩💻
Ici, on ne rigole plus. On va faire de la vraie analyse de données comme un Data Scientist chez Spotify.
Calculer la moyenne des écoutes par chanson pour Angèle.
- Cibler Angèle.
- Calculer la somme totale de ses écoutes (comme à l'exercice 7).
- Compter combien elle a de titres dans
top_titres(aveclen()). - Diviser la somme par le nombre de titres.