Chapitre 1 : Types construits, compréhension
p-uplets, tableaux et dictionnaires
Une table est faite de briques plus simples : des tableaux (listes), des p-uplets et des dictionnaires. Les bien connaître permet de lire un CSV sans tâtonner. Dans ce chapitre, tu manipules ces types construits à partir de quelques données du musée.
Au programme de NSI : Représentation des données : types construits : p-uplets, p-uplets nommés, tableaux indexés, tableaux de tableaux, dictionnaires. Écrire une fonction renvoyant un p-uplet de valeurs. Lire, modifier et parcourir un tableau, le construire par compréhension. Utiliser un tableau de tableaux. Construire une entrée de dictionnaire et parcourir un dictionnaire.
Les tableaux (listes)
Un tableau range des valeurs dans l'ordre. Chaque élément a un indice, qui commence à 0. On lit un élément avec t[i], on le modifie avec t[i] = valeur, on en ajoute avec append, et on les parcourt avec une boucle for. En Python, ce type s'appelle list.
ages = [45, 17, 29]
print(ages[0])
ages[1] = 18
ages.append(34)
print(len(ages))
for age in ages:
print(age)Les tableaux de tableaux
Un tableau peut contenir des tableaux : on obtient une matrice. On accède à un élément avec deux indices : a[i][j] est l'élément de la ligne i et de la colonne j. Une table lue dans un fichier est un tableau de lignes, chacune étant elle-même un tableau de valeurs.
plan = [[3, 0, 2],
[1, 4, 0]]
print(plan[1][1])
for i in range(len(plan)):
for j in range(len(plan[i])):
print(i, j, plan[i][j])Construire un tableau par compréhension
Une compréhension construit un tableau en une ligne : « pour chaque élément, calcule quelque chose, éventuellement seulement s'il vérifie une condition ». C'est la version courte de la boucle qui remplit un tableau avec append.
ages = [45, 17, 29, 16]
# avec une boucle
majeurs = []
for age in ages:
if age >= 18:
majeurs.append(age)
# par compréhension
majeurs = [age for age in ages if age >= 18]
doubles = [2 * age for age in ages]Les p-uplets
Un p-uplet (tuple) regroupe quelques valeurs, entre parenthèses. Contrairement à un tableau, il ne se modifie pas. C'est idéal pour une fonction qui doit renvoyer plusieurs valeurs à la fois.
def bornes(valeurs):
return (min(valeurs), max(valeurs))
plus_petit, plus_grand = bornes([45, 17, 29])
print(plus_petit, plus_grand)
r = bornes([8, 3])
print(r[0], r[1])Les dictionnaires
Un dictionnaire associe des valeurs à des clés. On y accède par la clé, pas par un indice : d['nom']. Un dictionnaire sert à représenter une fiche : c'est ce que csv.DictReader produit pour chaque ligne. En Python, un p-uplet nommé s'implémente avec un dictionnaire.
visiteur = {'nom': 'Durand', 'age': 45}
visiteur['ville'] = 'Brest'
print(visiteur['nom'])
print(list(visiteur.keys()))
print(list(visiteur.values()))
for cle, valeur in visiteur.items():
print(cle, '->', valeur)| Méthode | Renvoie |
|---|---|
| d.keys() | les clés |
| d.values() | les valeurs |
| d.items() | les couples (clé, valeur) |
| 'clé' in d | vrai si la clé existe |
À toi de jouer : Exercice guidé
Le dictionnaire visiteur contient un nom et un âge. Ajoute la clé 'ville' avec la valeur 'Brest', puis range dans cles la liste des clés du dictionnaire. Remplace chaque ___.