0Pricing
Coding Interview Prep · Leçon

Trier selon plusieurs champs

Départager avec des clés sous forme de tuples et reverse

Trier selon plusieurs champs est une leçon Coding Interview Prep gratuite sur CoddyKit. Ceci est la leçon 2 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage Coding Interview Prep, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Coding Interview Prep comprend 4 leçons au total.

Quand une seule key ne suffit pas

Parfois, plusieurs éléments sont à égalité sur le premier champ et vous devez les départager. La solution consiste à utiliser une clé tuple qui liste les champs par ordre de priorité.

Les tuples se comparent de gauche à droite

Python compare les tuples élément par élément : il vérifie le premier élément et ne regarde le second que si le premier est à égalité.

print((1, 9) < (1, 2))   # False
print((1, 2) < (2, 0))   # True

Une clé tuple pour deux champs

Renvoyez un tuple depuis votre key pour trier selon le premier champ, puis selon le second. Cela trie les personnes par âge, puis par nom.

people.sort(key=lambda p: (p.age, p.name))

Ordre primaire et secondaire

Le champ le plus à gauche constitue le tri principal et le suivant sert à départager les égalités. Réorganisez le tuple pour changer le champ prioritaire.

data = [(2, "b"), (1, "z"), (1, "a")]
print(sorted(data))
# [(1, 'a'), (1, 'z'), (2, 'b')]

Mélangez ordre croissant et décroissant

Pour trier un champ dans l'ordre croissant et un autre dans l'ordre décroissant, prenez l'opposé du champ numérique à trier dans l'ordre décroissant à l'intérieur de la clé tuple.

items.sort(key=lambda x: (x.group, -x.score))

L'astuce de l'opposé nécessite des nombres

L'astuce du signe moins ne fonctionne qu'avec des nombres. Pour inverser un champ de type chaîne, vous devez enchaîner les tris au lieu de prendre son opposé.

Le tri stable permet d'enchaîner les tris

Comme le tri est stable, vous pouvez trier d'abord selon la clé secondaire, puis selon la clé principale, tout en conservant les égalités dans le bon ordre.

rows.sort(key=lambda r: r.name)
rows.sort(key=lambda r: r.age, reverse=True)

Enchaînement ou tuple unique

Une seule clé tuple est plus rapide et plus claire dans les cas simples. L'enchaînement de tris est préférable lorsqu'un champ doit être croissant comme une chaîne et un autre décroissant.

itemgetter pour gagner en vitesse

Pour les tuples indexés, itemgetter est une key claire et rapide. Elle extrait plusieurs champs à la fois, dans l'ordre de priorité.

from operator import itemgetter
rows.sort(key=itemgetter(1, 0))

Les critères d'égalité rendent le résultat déterministe

Ajouter un dernier critère d'égalité unique, comme un id, rend le résultat stable d'une exécution à l'autre, ce qui est apprécié par les juges dotés de vérificateurs stricts.

Préparez votre key avant de coder

Lisez le problème et notez les champs de tri dans l'ordre. Une clé tuple claire transforme une comparaison complexe en une seule ligne courte.

Vérification rapide

Vous voulez trier les étudiants par note croissante, puis par nom croissant.

Récapitulatif

Vous pouvez départager les égalités avec une clé tuple, prendre l'opposé des nombres pour un ordre décroissant et enchaîner des tris stables pour mélanger les directions. Les critères d'égalité gardent un résultat propre. ✅

Questions Fréquemment Posées

La leçon « Trier selon plusieurs champs » est-elle gratuite ?

Oui — le texte complet de « Trier selon plusieurs champs » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours Coding Interview Prep, passe à CoddyKit PRO. Le cours Coding Interview Prep comprend 4 leçons au total.

Qu'est-ce que j'apprendrai dans « Trier selon plusieurs champs » ?

Départager avec des clés sous forme de tuples et reverse Tu pratiques Coding Interview Prep avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.

Dois-je avoir de l'expérience pour commencer Coding Interview Prep ?

Aucune expérience préalable n'est requise. Coding Interview Prep sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 2 sur 4.

Combien de temps prend la leçon « Trier selon plusieurs champs » ?

La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.

Peux-tu écrire et exécuter du code dans cette leçon Coding Interview Prep ?

Oui. Chaque leçon Coding Interview Prep inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.

Toutes les leçons de ce cours

  1. sorted() et la fonction key
  2. Trier selon plusieurs champs
  3. Ordre personnalisé avec functools.cmp_to_key
  4. Pourquoi trier d’abord débloque des solutions
← Retour à Coding Interview Prep