⌨ Spécialité NSI · Numérique et sciences informatiques Première Générale · Chapitre 3

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)

"Paris"0-5"Lyon"1-4"Lille"2-3"Nice"3-2"Brest"4-1indicenégatifvilles[0] ? "Paris" villes[-1] ? "Brest" len(villes) ? 5
Un tableau (liste Python) : les éléments sont repérés par leur indice, à partir de 0.

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 2

3. Les dictionnaires

clévaleur"nom""Lovelace""prenom""Ada""naissance"1815personne["prenom"] ? "Ada"
Un dictionnaire associe à chaque clé (unique) une valeur.

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

MatérielPython.
ConsigneÉcrire une fonction qui renvoie un dictionnaire associant à chaque mot d'une liste son nombre d'occurrences.
Résultat
def compter(mots):
    d = {}
    for m in mots:
        if m in d:
            d[m] = d[m] + 1
        else:
            d[m] = 1
    return d
BilanLe dictionnaire est la structure idéale pour compter ou indexer des données par une clé.

S'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.

1

Accès par indice

★☆☆

Avec t = [5, 8, 2, 9], que valent t[0], t[3] et t[-1] ?

🔒 Correction réservée aux membres Créer un compte gratuit →
2

Erreur d'indice

★☆☆

Que provoque t[4] avec le tableau précédent ?

🔒 Correction réservée aux membres Créer un compte gratuit →
3

Modifier un tableau

★☆☆

Que contient t après t[1] = 0 puis t.append(7) ?

🔒 Correction réservée aux membres Créer un compte gratuit →
4

Somme des éléments

★★☆

Écrire une fonction somme(t) sans utiliser sum.

🔒 Correction réservée aux membres Créer un compte gratuit →
5

Maximum

★★☆

Écrire une fonction maximum(t) pour un tableau non vide.

🔒 Correction réservée aux membres Créer un compte gratuit →
7

Compréhension avec filtre

★★☆

Écrire une compréhension qui garde les nombres pairs de t.

🔒 Correction réservée aux membres Créer un compte gratuit →
8

Tableau 2D

★★☆

Avec la grille du cours, que vaut grille[0][1] ? Comment obtenir $4$ ?

🔒 Correction réservée aux membres Créer un compte gratuit →
9

Matrice de zéros

★★☆

Créer par compréhension une grille de $3$ lignes et $4$ colonnes remplie de $0$.

🔒 Correction réservée aux membres Créer un compte gratuit →
10

Piège de la multiplication

★★★

Pourquoi g = [[0] * 4] * 3 pose-t-il problème quand on modifie g[0][0] ?

🔒 Correction réservée aux membres Créer un compte gratuit →
12

Renvoyer deux valeurs

★★☆

Écrire une fonction mini_maxi(t) qui renvoie le minimum et le maximum dans un p-uplet.

🔒 Correction réservée aux membres Créer un compte gratuit →
13

Dictionnaire : accès

★☆☆

Avec le dictionnaire du cours, que vaut personne["nom"] ?

🔒 Correction réservée aux membres Créer un compte gratuit →
14

Dictionnaire : ajout

★☆☆

Comment ajouter la clé "pays" de valeur "Royaume-Uni" ?

🔒 Correction réservée aux membres Créer un compte gratuit →
15

Parcours d'un dictionnaire

★★☆

Afficher chaque clé et sa valeur d'un dictionnaire d.

🔒 Correction réservée aux membres Créer un compte gratuit →
16

Comptage

★★☆

Que renvoie la fonction compter du cours pour ["a", "b", "a"] ?

🔒 Correction réservée aux membres Créer un compte gratuit →
17

Clé absente

★★☆

Que provoque d["x"] si la clé n'existe pas ? Comment l'éviter ?

🔒 Correction réservée aux membres Créer un compte gratuit →
18

Alias

★★☆

Que contient a après a = [1, 2] ; b = a ; b.append(3) ?

🔒 Correction réservée aux membres Créer un compte gratuit →
19

Répertoire téléphonique

★★★

Écrire une fonction qui, à partir d'une liste de couples (nom, numero), construit un dictionnaire nom ? numéro.

🔒 Correction réservée aux membres Créer un compte gratuit →
20

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$.

🔒 Correction réservée aux membres Créer un compte gratuit →

Vérifier

Avez-vous bien compris ?

Répondez au quiz : la correction s'affiche immédiatement.