Aller au contenu

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

Tri d'une table : quiz de Première NSI

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

L'essentiel

  • sorted(t) renvoie une nouvelle liste triée et laisse t intacte ; t.sort() trie t sur place et renvoie None.
  • Pour trier une table de dictionnaires ou de tuples, on passe une fonction à key qui extrait le critère (lambda e: e['note']).
  • reverse=True inverse l'ordre ; une clé qui est un tuple (critère1, critère2) départage les égalités.
  • Les valeurs lues dans un fichier CSV sont des chaînes : il faut les convertir (int, float) avant de trier, sinon l'ordre est alphabétique.
  • Le tri par sélection place le minimum en tête à chaque passage ; le tri par insertion agrandit un début de liste déjà trié.

Avant de commencer

Ce quiz porte sur le tri d'une table, c'est-à-dire sur la façon de ranger les lignes d'un tableau de données selon la valeur d'une colonne. Il s'inscrit dans la partie du programme de NSI de Première consacrée au traitement des données en tables.1 Tu y croiseras les fonctions de tri de Python, le choix de la clé de tri, le tri sur plusieurs critères, les pièges des données lues dans un fichier CSV et le déroulement à la main de deux algorithmes classiques, le tri par sélection et le tri par insertion.

Tu as déjà vu comment indexer une table et la parcourir pour y faire une recherche. Ici, on va plus loin : on veut que la table soit rangée, par exemple pour afficher un classement ou pour préparer une recherche plus rapide.

Quiz

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

  1. On exécute :

    notes = [14, 9, 14, 17]
    r = sorted(notes)
    

    Quelle est alors la valeur de notes ?

  2. On exécute :

    notes = [14, 9, 14, 17]
    r = notes.sort()
    

    Que contient r ?

  3. Avec la table eleves de la consigne (Léa 14, Tom 9, Ana 14, Ugo 17, dans cet ordre), on calcule :

    r = sorted(eleves, key=lambda e: e['note'])
    

    On admet que le tri conserve l'ordre initial des éléments à clé égale. Quel est le nom de l'élève en deuxième position de r ?

  4. On exécute :

    notes = [14, 9, 14, 17]
    r = sorted(notes, reverse=True)
    

    Quelle est la valeur de r[1] ?

  5. Vrai ou faux : l'instruction sorted(t) modifie la liste t.

  6. Quelles instructions renvoient les élèves de eleves rangés par note décroissante ? Plusieurs réponses sont possibles.

    Plusieurs réponses possibles.

  7. La table est une liste de tuples : t = [('Léa', 14), ('Tom', 9), ('Ana', 14), ('Ugo', 17)]. Quelle clé permet de la trier par note ?

  8. On exécute sorted(['pomme', 'Banane', 'abricot']). Quel est le résultat ?

  9. Des nombres ont été lus dans un fichier CSV et sont donc des chaînes. On exécute sorted(['10', '9', '100']). Quel est le résultat ?

  10. On applique le tri par sélection à la liste [6, 3, 2, 5, 1]. À chaque passage, on cherche le minimum de la partie non triée et on l'échange avec le premier élément de cette partie. Après le premier passage, quelle est la somme des trois premiers éléments de la liste ?

  11. On applique le tri par insertion à [4, 2, 5, 1], en insérant les éléments un par un dans la partie gauche déjà triée. Que vaut la liste juste après l'insertion du troisième élément (celui qui vaut 5) ?

  12. Avec la table eleves (Léa 14, Tom 9, Ana 14, Ugo 17), on trie avec la clé lambda e: (e['note'], e['nom']). Quel est le nom de l'élève en deuxième position ?

  13. Vrai ou faux : avec la clé lambda e: (-e['note'], e['nom']), la liste triée issue de eleves commence par Ugo, puis Ana.

  14. Que se passe-t-il quand on exécute sorted([3, '2', 1]) ?

  15. On dispose de mots = ['chat', 'éléphant', 'ours', 'lion'] et on calcule sorted(mots, key=len), en admettant que le tri conserve l'ordre initial des éléments à clé égale. Quel mot est en deuxième position ?

  16. Vrai ou faux : on peut appliquer une recherche par dichotomie sur une table dont les valeurs ne sont pas triées.

Les questions qu'on se pose

Quelle est la différence entre sorted et sort ?

sorted(t) renvoie une nouvelle liste triée et ne change pas t. t.sort() trie t sur place et renvoie None. Si tu veux conserver la table d'origine, prends sorted ; si tu n'en as plus besoin sous sa forme initiale, sort suffit. Écris t.sort() seul sur sa ligne, jamais t = t.sort().

Comment trier selon une colonne d'une table lue depuis un CSV ?

Donne à key une fonction qui extrait la colonne, par exemple key=lambda e: e['age']. Si la colonne contient des nombres, convertis-les : key=lambda e: int(e['age']). Sans cette conversion, les valeurs sont des chaînes et l'ordre est alphabétique : '9' passerait après '100'.

Sources

  1. NSI Première - Traitement de données en tables : opérations (académie Lyon), Académie de Lyon. Consulté le 6 novembre 2026.
  2. Table de tri, 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