Coincidencia de secuencias y mapeos
Desestructure listas y diccionarios
Coincidencia de secuencias y mapeos es una lección gratuita de Python Academy en CoddyKit. Esta es la lección 2 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Python Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Python Academy incluye 4 lecciones en total.
Patrones que desestructuran
La verdadera potencia de match es la desestructuración. Los patrones de secuencia y de mapeo permiten comprobar la estructura de los datos y extraer valores al mismo tiempo.
Coincidir con una lista de longitud fija
Un patrón de secuencia entre corchetes coincide con una lista o tupla de esa longitud exacta y asigna cada elemento a un nombre.
point = [3, 4]
match point:
case [x, y]:
print('x =', x, 'y =', y)La longitud debe coincidir
Un patrón de dos elementos no coincide con una secuencia de tres elementos. Cada caso comprueba tanto la estructura como la longitud.
data = [1, 2, 3]
match data:
case [a, b]:
print('pair')
case [a, b, c]:
print('triple:', a, b, c)Combinar literales y capturas
Puede fijar algunas posiciones con literales y capturar otras. De este modo, solo coinciden las secuencias que comienzan con el literal indicado.
command = ['move', 10, 20]
match command:
case ['move', dx, dy]:
print('moving by', dx, dy)
case ['stop']:
print('stopping')Capturar el resto con *
Un nombre precedido por un asterisco captura todos los elementos restantes como una lista, de forma similar al desempaquetado extendido.
items = [1, 2, 3, 4, 5]
match items:
case [first, *rest]:
print('first:', first)
print('rest:', rest)Patrones vacíos y de un solo elemento
Los patrones de secuencia gestionan los casos límite con claridad: una lista vacía, un solo elemento o muchos elementos.
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]))Coincidencia con diccionarios
Un patrón de mapeo usa llaves. Comprueba que las claves indicadas estén presentes y asigna sus valores. Se permiten claves adicionales en el sujeto.
event = {'type': 'click', 'x': 10, 'y': 20}
match event:
case {'type': 'click', 'x': x, 'y': y}:
print('click at', x, y)Coincidencia parcial de claves
Un patrón de mapeo solo requiere las claves que enumere. Las demás se ignoran, lo que resulta ideal para mensajes con campos opcionales.
event = {'type': 'key', 'code': 'A', 'extra': 1}
match event:
case {'type': 'key', 'code': code}:
print('key pressed:', code)Capturar las claves restantes
Use **rest para capturar todos los pares clave-valor que no hayan coincidido en un diccionario.
event = {'type': 'move', 'dx': 5, 'dy': 7}
match event:
case {'type': 'move', **rest}:
print('move details:', rest)Anidar patrones
Los patrones se pueden anidar libremente. Puede hacer coincidir un diccionario que contenga una lista y desestructurar ambos a la vez.
data = {'name': 'grid', 'size': [3, 4]}
match data:
case {'name': name, 'size': [w, h]}:
print(name, 'is', w, 'by', h)Aquí las cadenas no son secuencias
Los patrones de secuencia deliberadamente no coinciden con cadenas ni bytes, aunque sean iterables. Esto evita que una cadena se desestructure accidentalmente carácter por carácter.
value = 'hi'
match value:
case [a, b]:
print('matched as sequence')
case str():
print('matched as string')Comprobación rápida
¿Qué asigna el patrón [first, *rest] al coincidir con [1, 2, 3, 4]?
Resumen
Ha aprendido a desestructurar listas y diccionarios.
- Los patrones de secuencia comprueban la longitud y asignan los elementos.
*restcaptura los elementos restantes de la lista.- Los patrones de mapeo coinciden con claves; se permiten claves adicionales.
**restcaptura los pares restantes del diccionario; los patrones se pueden anidar.
Preguntas frecuentes
¿La lección «Coincidencia de secuencias y mapeos» es gratis?
Sí — el texto completo de «Coincidencia de secuencias y mapeos» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Python Academy, actualiza a CoddyKit PRO. El curso de Python Academy incluye 4 lecciones en total.
¿Qué aprenderé en «Coincidencia de secuencias y mapeos»?
Desestructure listas y diccionarios Practicas Python Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.
¿Necesito experiencia previa para empezar Python Academy?
No se requiere experiencia previa. Python Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 2 de 4.
¿Cuánto tiempo toma la lección «Coincidencia de secuencias y mapeos»?
La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.
¿Puedo escribir y ejecutar código en esta lección de Python Academy?
Sí. Cada lección de Python Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.
Todas las lecciones de este curso
- Conceptos básicos de match y case
- Coincidencia de secuencias y mapeos
- Patrones de clases
- Guardas y comodines