¿Existe?
Devolvé True si hay un Pokémon con ese "nombre".
Entrá y llevá tu progreso —ejercicios, medallas y Pokémon— a cualquier dispositivo. 🔄
Si tu cuenta ya tiene progreso guardado, se carga ese al entrar.
Entraste como . Tu progreso se sincroniza solo. 🔄
Devolvé True si hay un Pokémon con ese "nombre".
🎯 Meta: combinar búsqueda, orden y conteo en un análisis real de datos.
Llegaste al final de Paldea. Ahora juntás todo lo aprendido sobre una lista de Pokémon, donde cada uno es un diccionario:
pokes = [
{"nombre": "Squirtle", "tipo": "agua", "nivel": 16},
{"nombre": "Charmander", "tipo": "fuego", "nivel": 9},
{"nombre": "Gyarados", "tipo": "agua", "nivel": 30},
]
def por_tipo(pokes):
grupos = {}
for p in pokes:
grupos.setdefault(p["tipo"], []).append(p["nombre"])
return grupos
# {"agua": ["Squirtle", "Gyarados"], "fuego": ["Charmander"]}
def ordenar(pokes):
return sorted(pokes, key=lambda p: p["nivel"], reverse=True)
key=lambda p: p["nivel"] le dice a sorted por qué campo ordenar; reverse=True, de mayor a menor.
def mas_fuerte(pokes):
return max(pokes, key=lambda p: p["nivel"])["nombre"] if pokes else ""
El mismo patrón key=... sirve para sorted, max y min. Domínalo y resolvés media programación de datos.
Búsqueda, orden, pilas, colas, recursión, grafos y tablas hash: las estructuras de datos y algoritmos que son la base de toda la informática. Con esto pensás soluciones, no solo código.
P: `sorted(pokes, key=lambda p: p["nivel"], reverse=True)` ordena…
+ por nivel, de mayor a menor
- por nombre
- al azar
> `key` dice por qué campo ordenar; `reverse=True` lo hace descendente.
P: El patrón `key=...` sirve para…
+ `sorted`, `max` y `min`
- solo para `sorted`
- solo para `print`
> El mismo truco ordena y encuentra el mayor/menor por un campo.
🏆 La Líder Grusha y la Campeona Geeta te esperan para coronarte Campeón de Paldea.