Aller au contenu

Numérique et sciences informatiques (spécialité) · Première

P-uplets et p-uplets nommés : cours de NSI en Première

Publié le 6 novembre 2026 · Mis à jour le 6 novembre 2026 · Signaler une erreur

L'essentiel

  • Un p-uplet est une suite ordonnée de p éléments, de types quelconques ; en Python, c'est le type tuple 2.
  • On le crée en énumérant des valeurs séparées par des virgules, le plus souvent entre parenthèses 4 ; deux p-uplets de tailles différentes ne sont jamais égaux 5.
  • Les noms couple, triplet, quadruplet désignent les p-uplets de 2, 3 et 4 éléments 4.
  • Un p-uplet nommé désigne ses composantes par un nom (le descripteur) et non par une position 1.
  • Python n'a pas ce type en natif : on l'imite avec un dictionnaire, ce qui permet de représenter une table de données ligne par ligne 13.

Pourquoi regrouper plusieurs valeurs en une seule

Imagine que tu veuilles représenter un point sur une carte. Une seule valeur ne suffit pas : il en faut au moins deux, une abscisse et une ordonnée. Imagine maintenant que tu doives décrire un élève dans un fichier : son nom, sa classe, sa moyenne. Là encore, plusieurs informations vont ensemble et il serait maladroit de les stocker dans des variables séparées, sans lien entre elles.

C'est exactement le rôle du p-uplet : regrouper, dans un seul objet, plusieurs valeurs qui forment un tout. Les mathématiciens l'utilisent depuis longtemps, par exemple pour les coordonnées ; les informaticiens l'ont repris pour manipuler des données structurées. Dans ce cours, tu vas apprendre à le définir, à le créer en Python, à lire ses composantes, puis à passer au p-uplet nommé, qui permet de retrouver une information par son nom plutôt que par sa position.

Le cours suit une progression simple :

  • d'abord l'idée mathématique de p-uplet, avec son vocabulaire ;
  • ensuite le type tuple de Python et la façon de l'écrire ;
  • puis la comparaison avec les listes, que tu étudieras en détail ensuite ;
  • enfin les p-uplets nommés et leur usage pour représenter une table de données, celle d'un fichier CSV par exemple.

Ce chapitre prépare directement les tableaux et listes puis les dictionnaires : tout ce que tu vois ici te servira à ce moment-là.

Le p-uplet : la définition mathématique

Deux mots de cette définition méritent qu'on s'y arrête.

Ordonné : la position de chaque composante compte. Le premier élément reste le premier, le deuxième reste le deuxième. Changer l'ordre revient à obtenir un autre p-uplet.

Fini : un p-uplet contient un nombre précis de composantes, ni plus ni moins. Tu peux toujours dire combien il y en a.

On parle tantôt de « n-uplet », tantôt de « p-uplet » : la lettre n'a aucune importance, elle désigne simplement le nombre de composantes. Les deux notations désignent la même chose, et ton programme de NSI emploie « p-uplet ».

Cette propriété se vérifie facilement avec un exemple : (1,2)(1, 2) et (1,2,3)(1, 2, 3) commencent de la même façon, mais le premier a deux composantes et le second trois. Ils sont donc différents. De même, (1,2)(1, 2) et (2,1)(2, 1) ont la même taille, mais pas les mêmes composantes à la même place : ils sont différents aussi, puisque l'ordre compte.

Les p-uplets sont partout en mathématiques. Les coordonnées sont des n-uplets : un point de l'espace ordinaire correspond à un triplet de nombres réels 5. Un p-uplet peut aussi regrouper les arguments d'une fonction à plusieurs variables 5.

Les noms des p-uplets selon leur taille
TailleNomExemple
2Couple(1, 9)
3Triplet(3, 9, 2.8)
4Quadruplet(3, 8, "car", 2.4)
Les noms des p-uplets selon leur taille · Vocabulaire des petites tailles de p-uplets.

Le type tuple en Python

Cette dernière précision est très utile : contrairement à ce que l'on voit parfois en mathématiques, où l'on regroupe souvent des nombres, un tuple Python peut mélanger des entiers, des flottants, des chaînes de caractères, et même d'autres tuples. Les composantes n'ont donc pas besoin d'être du même type.

Ce qui fait le tuple, ce sont donc les virgules, pas les parenthèses. Les parenthèses servent à rendre le code lisible, et à lever des ambiguïtés. Par exemple, pour écrire un p-uplet qui contient lui-même un autre p-uplet, les parenthèses sont nécessaires 2. Quand le p-uplet fait partie d'une expression plus longue, elles aident aussi à la lecture 2.

Lire un p-uplet : indices et usages

Comme un p-uplet est ordonné, on peut repérer chacun de ses éléments par un indice, c'est-à-dire sa position. Cette idée de suite de valeurs repérées par des indices est à l'origine des p-uplets et des listes en Python 2.

Un usage très courant consiste à regrouper les coordonnées d'un point. Les ressources officielles donnent l'exemple d'une fonction qui reçoit en paramètres trois p-uplets représentant les coordonnées de trois points, après avoir importé la fonction racine carrée sqrt 2. On peut s'en inspirer pour calculer une distance dans le plan.

Cet exemple montre l'intérêt du p-uplet : la fonction reçoit deux paramètres seulement, a et b, alors que chaque point porte deux nombres. Sans p-uplet, il faudrait écrire une fonction à quatre paramètres, et se souvenir de leur ordre.

En informatique générale, on retrouve aussi les n-uplets dans les types de données de type enregistrement 5. Cette idée d'enregistrement, c'est-à-dire d'une « fiche » regroupant des informations, conduit naturellement aux p-uplets nommés.

P-uplets et listes : ce qui se ressemble

Tu connais peut-être déjà le type list. Une liste ressemble à un p-uplet : c'est un ensemble ordonné d'éléments, repérés par des indices 2. On retrouve donc l'idée d'ordre et de position.

Pourquoi alors disposer de deux types ? Parce que les usages diffèrent. Un p-uplet sert plutôt à regrouper un petit nombre de valeurs hétérogènes qui forment un tout : un point, une date, une fiche. Une liste sert plutôt à ranger une suite de valeurs de même nature, que l'on parcourt. Le chapitre suivant, consacré aux tableaux et listes, développera ce point.

Tuple et liste : repères d'usage
TupleListe
NotationParenthèsesCrochets
Type Pythontuplelist
Usage typiqueUn tout de petite tailleUne suite à parcourir
Exemple(3, 8, "car")[3, 8, 5, 1]
Tuple et liste : repères d'usage · Les deux types sont ordonnés et indexés ; ils diffèrent par la notation et l'usage.

Retiens pour l'instant ce critère de choix : si tu te demandes « de quoi est fait cet objet, et dans quel ordre ? », pense p-uplet. Si tu te demandes « combien d'éléments de ce genre ai-je à traiter ? », pense liste.

Les p-uplets nommés

Prenons une fiche d'élève : « Lina, 1re, 14 ». Avec un p-uplet ordinaire, tu écrirais ("Lina", "1re", 14) et tu devrais te rappeler que la note est à l'indice 2. Avec un p-uplet nommé, tu appelles la composante par son nom : le champ note. Le code devient bien plus lisible : eleve["note"] se comprend sans commentaire, alors que eleve[2] oblige à se souvenir de l'organisation.

Ce type figure au programme de Première de NSI surtout pour simplifier la manipulation de données, comme les tables 1. Un fichier de données est en effet fait de lignes qui ont toutes les mêmes champs : chaque ligne est un p-uplet nommé.

Le mot immuable signifie qu'on ne peut pas modifier l'objet une fois créé. Le mot mutable signifie le contraire. Il y a donc un léger écart entre le p-uplet nommé « idéal », qui ne change pas, et son imitation par un dictionnaire, qui reste modifiable. Il faut donc être discipliné : en tant que programmeur, tu t'interdis de modifier les champs d'un enregistrement que tu considères comme un p-uplet nommé.

Carte mentale des p-upletsCarte mentale reliant p-uplet, p-uplet nommé, création en Python et table de données.Suite ordonnéeTaille finieTypes variésDéfinitionType tupleVirgulesIndicesEn PythonDescripteurDictionnaireImmuableP-uplet nomméFichier CSVNoms de colonnesListe de dictTablesP-uplets

P-uplets

  • Définition
    • Suite ordonnée
    • Taille finie
    • Types variés
  • En Python
    • Type tuple
    • Virgules
    • Indices
  • P-uplet nommé
    • Descripteur
    • Dictionnaire
    • Immuable
  • Tables
    • Fichier CSV
    • Noms de colonnes
    • Liste de dict
Carte mentale des p-uplets · Vue d'ensemble du chapitre.

Représenter une table de données

Le grand intérêt des p-uplets nommés apparaît quand on traite une table, c'est-à-dire un ensemble de lignes qui partagent les mêmes champs. Un fichier CSV en est l'exemple typique : sa première ligne donne le nom des colonnes 1, et chaque ligne suivante décrit un enregistrement.

La démarche consiste à écrire une fonction qui extrait les données et les range dans un tableau de p-uplets nommés 1. On obtient alors un tableau de p-uplets sous forme de dictionnaires, dont les clés nomment les champs 3.

Erreurs fréquentes et réflexes à adopter

Exercices corrigés

Exercice 1 Distance entre deux points

★☆☆Environ 8 min

On représente un point du plan par un couple de nombres. Soit A = (2, 1) et B = (8, 9).

  1. Écris l'instruction Python qui crée ces deux tuples.
  2. Quelles sont les valeurs de A[0] et de B[1] ?
  3. Calcule la distance ABAB.
Indice 1

La distance se calcule avec la différence des abscisses et la différence des ordonnées, puis le théorème de Pythagore.

Indice 2

Les indices commencent à 0 : A[0] est la première composante.

Voir la correction pas à pas
  1. On écrit A = (2, 1) puis B = (8, 9) : chaque tuple est un couple de deux composantes.

  2. A[0] est la première composante de A, donc 2. B[1] est la deuxième composante de B, donc 9.

  3. On calcule les écarts : dx=8−2=6dx = 8 - 2 = 6 et dy=9−1=8dy = 9 - 1 = 8.

  4. On applique Pythagore : AB=62+82=36+64=100=10AB = \sqrt{6^2 + 8^2} = \sqrt{36 + 64} = \sqrt{100} = 10.

La distance ABAB vaut 10. Le couple permet de transmettre un point entier à une fonction, sans séparer abscisse et ordonnée.

Exercice 2 Moyenne d'une table de notes

★★☆Environ 12 min

Une table est représentée par une liste de dictionnaires, un par élève :

table = [{"nom": "Ines", "note": 12},
         {"nom": "Paul", "note": 15},
         {"nom": "Zoe", "note": 9}]
  1. Comment obtient-on la note de Paul à partir de table ?
  2. Écris une boucle qui calcule la somme des notes.
  3. Quelle est la moyenne des trois élèves ?
Indice 1

Paul est le deuxième élément de la liste : quel est son indice ? Puis quelle clé du dictionnaire utiliser ?

Indice 2

La moyenne est la somme des notes divisée par le nombre d'élèves, donné par len(table).

Voir la correction pas à pas
  1. Paul est le deuxième élément de la liste, d'indice 1. On écrit table[1]["note"], ce qui donne 15.

  2. On initialise total = 0, puis on parcourt : for eleve in table: total = total + eleve["note"].

  3. La somme vaut 12+15+9=3612 + 15 + 9 = 36.

  4. La moyenne vaut 363=12\dfrac{36}{3} = 12.

La moyenne est 12. Chaque enregistrement est ici un p-uplet nommé : on lit la note par son descripteur, sans se soucier de sa position.

Exercice 3 Choisir la bonne structure

★★★Environ 12 min

Pour chacune des situations suivantes, indique s'il vaut mieux utiliser un p-uplet, un p-uplet nommé ou une liste, et justifie en une phrase.

  1. Les coordonnées (x ; y)(x\,;\,y) d'un point du plan.
  2. Une fiche de livre avec titre, auteur, année de parution et nombre de pages.
  3. Les températures relevées chaque jour d'un mois.
  4. Le contenu d'un fichier CSV de vingt lignes.
Indice 1

Demande-toi si les composantes ont le même sens ou des sens différents.

Indice 2

Un fichier CSV est composé de lignes qui ont toutes les mêmes champs.

Voir la correction pas à pas
  1. Un point est un petit tout de deux nombres : un p-uplet (un couple) suffit.

  2. Une fiche de livre mélange quatre informations de natures différentes : un p-uplet nommé, avec les champs titre, auteur, annee, pages, est plus lisible que des indices.

  3. Les températures forment une suite de valeurs de même nature, dont le nombre varie selon le mois : une liste convient.

  4. Un fichier CSV est une table : on choisit une liste de p-uplets nommés, représentés par des dictionnaires dont les clés sont les noms de colonnes.

Le choix dépend du sens des composantes et de leur nombre : un tout de petite taille, un p-uplet ; des champs de sens différents, un p-uplet nommé ; une suite homogène, une liste.

Quiz

8 questions · correction immédiate · ton score reste sur ton appareil.

  1. Quel est le nom d'un p-uplet de 3 éléments ?

  2. Quelle est la taille du tuple t = (3, 8, "car", 2.4) ?

  3. Un tuple Python peut contenir des éléments de types différents.

  4. Parmi ces écritures, lesquelles créent un tuple en Python ? (plusieurs réponses)

    Plusieurs réponses possibles.

  5. Les p-uplets (1, 2) et (1, 2, 3) sont égaux.

  6. Qu'est-ce qui distingue un p-uplet nommé d'un p-uplet ordinaire ?

  7. Comment représente-t-on couramment un p-uplet nommé en Python dans le programme de NSI ?

  8. Un fichier CSV est lu pour construire un tableau de p-uplets nommés. Que contient sa première ligne ?

Les questions qu'on se pose

Quelle est la différence entre un tuple et une liste ?

Les deux sont des ensembles ordonnés d'éléments repérés par des indices 2. La différence se fait dans l'usage : le p-uplet regroupe un petit nombre de valeurs qui forment un tout (un point, une fiche), la liste sert à ranger une suite d'éléments de même nature. Écris un tuple avec des parenthèses et une liste avec des crochets. Le chapitre sur les tableaux et listes détaille ces différences.

Faut-il toujours mettre des parenthèses pour écrire un tuple ?

Non, ce sont les virgules qui construisent le tuple, et on peut en créer un sans parenthèses 4. Mais dans la pratique on utilise majoritairement des parenthèses 4, et elles sont indispensables pour écrire un p-uplet qui en contient un autre 2. Prends donc l'habitude de toujours en mettre.

Pourquoi utiliser un p-uplet nommé plutôt qu'un simple p-uplet ?

Pour la lisibilité. Avec un descripteur, tu écris eleve["note"] et le sens saute aux yeux, alors qu'avec un indice tu dois te rappeler dans quel ordre sont rangés les champs. Ce type est au programme de Première de NSI avant tout pour simplifier le traitement de données comme les tables 1.

Python possède-t-il un vrai type de p-uplet nommé ?

Il n'existe pas nativement, mais on pourrait utiliser le module collections.namedtuple 1. Dans le cadre du programme, on utilise surtout des dictionnaires, qui jouent ce rôle, avec la nuance qu'ils sont mutables alors que les p-uplets nommés sont normalement immuables 1.

Que renvoie une fonction qui « renvoie plusieurs valeurs » ?

Elle renvoie un seul objet, qui est un p-uplet regroupant les valeurs. Le p-uplet sert alors de paquet : on peut le récupérer tel quel ou le décomposer dans plusieurs variables. C'est un usage fréquent du couple ou du triplet.

Sources

  1. P-uplets nommés et dictionnaires — Ressources Éduscol, Éduscol (Ministère de l'Éducation nationale). Consulté le 6 novembre 2026.
  2. Types construits en Python — Ressources Éduscol, Éduscol (Ministère de l'Éducation nationale). Consulté le 6 novembre 2026.
  3. Manipulation de tables — Représentation des données — Ressources Éduscol, Éduscol (Ministère de l'Éducation nationale). Consulté le 6 novembre 2026.
  4. Introduction aux tuples — Spécialité NSI, Académie de Lyon. Consulté le 6 novembre 2026.
  5. Uplet, Wikipédia. Consulté le 6 novembre 2026.

Les numéros dans le texte renvoient à ces sources. Une source qui ne dit pas ce qu'on lui fait dire ? Signale-le.

Signaler une erreur sur cette page

Je suis en…

Primaire

  • CP Bientôt
  • CE1 Bientôt
  • CE2 Bientôt
  • CM1 Bientôt
  • CM2 Bientôt

Collège

Lycée

Supérieur

  • BTS Bientôt
  • BUT Bientôt
  • Licence Bientôt
  • Prépas Bientôt

Sur cette page