Correspondance des séquences et des mappages
Déstructurer des listes et des dictionnaires
Correspondance des séquences et des mappages est une leçon Python Academy 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 Python Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Python Academy comprend 4 leçons au total.
Des motifs qui déstructurent
La véritable puissance de match réside dans la déstructuration. Les motifs de séquence et de mappage permettent de vérifier la forme des données et d'en extraire les valeurs simultanément.
Correspondance avec une liste de longueur fixe
Un motif de séquence entre crochets correspond à une liste ou à un tuple d'une longueur exactement égale, en associant chaque élément à un nom.
point = [3, 4]
match point:
case [x, y]:
print('x =', x, 'y =', y)La longueur doit correspondre
Un motif à deux éléments ne correspond pas à une séquence de trois éléments. Chaque cas vérifie à la fois la structure et la longueur.
data = [1, 2, 3]
match data:
case [a, b]:
print('pair')
case [a, b, c]:
print('triple:', a, b, c)Mélanger littéraux et captures
Vous pouvez fixer certaines positions à des littéraux et en capturer d'autres. Ce motif ne correspond qu'aux séquences qui commencent par le littéral indiqué.
command = ['move', 10, 20]
match command:
case ['move', dx, dy]:
print('moving by', dx, dy)
case ['stop']:
print('stopping')Capturer le reste avec *
Un nom précédé d'un astérisque capture tous les éléments restants sous forme de liste, un peu comme le déballage étendu.
items = [1, 2, 3, 4, 5]
match items:
case [first, *rest]:
print('first:', first)
print('rest:', rest)Motifs vides et à élément unique
Les motifs de séquence gèrent proprement les cas limites : une liste vide, un seul élément ou un grand nombre d'éléments.
def describe(seq):
match seq:
case []:
return 'empty'
case [x]:
return 'one: ' + str(x)
case [x, *rest]:
return 'many, first ' + str(x)
print(describe([]))
print(describe([9]))
print(describe([1, 2, 3]))Correspondance avec des dictionnaires
Un motif de mappage utilise des accolades. Il vérifie que les clés indiquées sont présentes et associe leurs valeurs. Les clés supplémentaires du sujet sont autorisées.
event = {'type': 'click', 'x': 10, 'y': 20}
match event:
case {'type': 'click', 'x': x, 'y': y}:
print('click at', x, y)Correspondance partielle des clés
Un motif de mappage n'exige que les clés que vous indiquez. Les autres clés sont ignorées, ce qui est très utile pour les messages contenant des champs facultatifs.
event = {'type': 'key', 'code': 'A', 'extra': 1}
match event:
case {'type': 'key', 'code': code}:
print('key pressed:', code)Capturer les clés restantes
Utilisez **rest pour capturer toutes les paires clé-valeur non correspondantes dans un dictionnaire.
event = {'type': 'move', 'dx': 5, 'dy': 7}
match event:
case {'type': 'move', **rest}:
print('move details:', rest)Imbrication des motifs
Les motifs peuvent s'imbriquer librement. Vous pouvez faire correspondre un dictionnaire qui contient une liste, en déstructurant les deux à la fois.
data = {'name': 'grid', 'size': [3, 4]}
match data:
case {'name': name, 'size': [w, h]}:
print(name, 'is', w, 'by', h)Les chaînes ne sont pas des séquences ici
Les motifs de séquence ne correspondent délibérément pas aux chaînes ni aux séquences d'octets, même si celles-ci sont itérables. Cela empêche qu'une chaîne soit déstructurée accidentellement caractère par caractère.
value = 'hi'
match value:
case [a, b]:
print('matched as sequence')
case str():
print('matched as string')Vérification rapide
À quoi associe le motif [first, *rest] lorsqu'il est appliqué à [1, 2, 3, 4] ?
Récapitulatif
Vous avez appris à déstructurer des listes et des dictionnaires.
- Les motifs de séquence vérifient la longueur et associent les éléments.
*restcapture les éléments restants de la liste.- Les motifs de mappage correspondent aux clés ; les clés supplémentaires sont autorisées.
**restcapture les paires restantes du dictionnaire ; les motifs peuvent s'imbriquer.
Questions Fréquemment Posées
La leçon « Correspondance des séquences et des mappages » est-elle gratuite ?
Oui — le texte complet de « Correspondance des séquences et des mappages » 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 Python Academy, passe à CoddyKit PRO. Le cours Python Academy comprend 4 leçons au total.
Qu'est-ce que j'apprendrai dans « Correspondance des séquences et des mappages » ?
Déstructurer des listes et des dictionnaires Tu pratiques Python Academy 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 Python Academy ?
Aucune expérience préalable n'est requise. Python Academy 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 « Correspondance des séquences et des mappages » ?
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 Python Academy ?
Oui. Chaque leçon Python Academy 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
- Les bases de match et case
- Correspondance des séquences et des mappages
- Motifs de classes
- Gardes et caractères génériques