Types construits : p-uplets, tableaux et dictionnaires
p-uplets (tuples) et p-uplets nommés, tableaux (listes Python) : indices, parcours, construction par compréhension, tableaux à deux dimensions ; dictionnaires : clés, valeurs, parcours ; mutabilité et copies.
1. Les p-uplets
Définition
Un p-uplet (tuple) est une séquence non modifiable d'éléments, éventuellement de types différents : point = (3, 4), point[0] vaut $3$. Une fonction peut renvoyer un p-uplet : return (mini, maxi).
2. Les tableaux (listes)
Propriété · Opérations
t[i] (accès, à partir de l'indice $0$), t[i] = v (modification), len(t), t.append(v) (ajout à la fin), for x in t (parcours des valeurs), for i in range(len(t)) (parcours des indices). Construction par compréhension : [x * x for x in range(5)] donne [0, 1, 4, 9, 16] ; avec filtre : [x for x in t if x > 0].
Exemple · Tableau à deux dimensions
grille = [[1, 2, 3],
[4, 5, 6]]
grille[1][2] # 6 : ligne 1, colonne 23. Les dictionnaires
Propriété · Opérations
d = {"nom": "Lovelace", "prenom": "Ada"} ; d["prenom"] ; ajout ou modification d["naissance"] = 1815 ; test "nom" in d ; parcours for cle in d, d.keys(), d.values(), d.items(). Les clés sont uniques et non modifiables (chaînes, nombres, p-uplets).
4. Mutabilité
Attention · Alias
b = a ne copie pas une liste : a et b désignent le même objet ; modifier b modifie a. Pour une copie : b = list(a) ou b = a[:]. Les p-uplets et chaînes ne sont pas modifiables.
Activité · Compter les mots d'un texte
def compter(mots):
d = {}
for m in mots:
if m in d:
d[m] = d[m] + 1
else:
d[m] = 1
return dS'entraîner
Exercices corrigés
🎓 20 exercices corrigés et un quiz vous attendent dans ce chapitre.
Créez votre compte gratuit pour voir les corrections, faire les quiz et suivre votre progression.
Accès par indice
★☆☆Avec t = [5, 8, 2, 9], que valent t[0], t[3] et t[-1] ?
Erreur d'indice
★☆☆Que provoque t[4] avec le tableau précédent ?
Modifier un tableau
★☆☆Que contient t après t[1] = 0 puis t.append(7) ?
Somme des éléments
★★☆Écrire une fonction somme(t) sans utiliser sum.
Maximum
★★☆Écrire une fonction maximum(t) pour un tableau non vide.
Compréhension
★☆☆Que donne [2 * x for x in range(4)] ?
Compréhension avec filtre
★★☆Écrire une compréhension qui garde les nombres pairs de t.
Tableau 2D
★★☆Avec la grille du cours, que vaut grille[0][1] ? Comment obtenir $4$ ?
Matrice de zéros
★★☆Créer par compréhension une grille de $3$ lignes et $4$ colonnes remplie de $0$.
Piège de la multiplication
★★★Pourquoi g = [[0] * 4] * 3 pose-t-il problème quand on modifie g[0][0] ?
p-uplet
★☆☆Que provoque p = (1, 2) puis p[0] = 5 ?
Renvoyer deux valeurs
★★☆Écrire une fonction mini_maxi(t) qui renvoie le minimum et le maximum dans un p-uplet.
Dictionnaire : accès
★☆☆Avec le dictionnaire du cours, que vaut personne["nom"] ?
Dictionnaire : ajout
★☆☆Comment ajouter la clé "pays" de valeur "Royaume-Uni" ?
Parcours d'un dictionnaire
★★☆Afficher chaque clé et sa valeur d'un dictionnaire d.
Comptage
★★☆Que renvoie la fonction compter du cours pour ["a", "b", "a"] ?
Clé absente
★★☆Que provoque d["x"] si la clé n'existe pas ? Comment l'éviter ?
Alias
★★☆Que contient a après a = [1, 2] ; b = a ; b.append(3) ?
Répertoire téléphonique
★★★Écrire une fonction qui, à partir d'une liste de couples (nom, numero), construit un dictionnaire nom ? numéro.
Vrai ou faux
★★☆a) Un dictionnaire peut avoir deux fois la même clé. b) Les listes sont modifiables. c) Le premier indice d'un tableau est $1$.
Vérifier
Avez-vous bien compris ?
Répondez au quiz : la correction s'affiche immédiatement.