.
Solución al Ejercicio: Encontrar persona más joven
📋 Copiar código
def encontrar_persona_mas_joven(lista_personas):
"""
Toma una lista de diccionarios, donde cada diccionario tiene las claves "nombre" y "edad".
Devuelve el nombre de la persona más joven de la lista.
Args:
lista_personas: Una lista de diccionarios, donde cada diccionario contiene las claves "nombre" (string) y "edad" (integer).
Returns:
El nombre (string) de la persona más joven.
Devuelve None si la lista está vacía.
"""
if not lista_personas:
return None
persona_mas_joven = lista_personas[0] # Asumimos que la primera persona es la más joven inicialmente
for persona in lista_personas[1:]: # Iteramos sobre el resto de la lista
if persona['edad'] < persona_mas_joven['edad']:
persona_mas_joven = persona
return persona_mas_joven['nombre']
# Ejemplo de uso
lista_de_personas = [
{'nombre': 'Ana', 'edad': 30},
{'nombre': 'Carlos', 'edad': 25},
{'nombre': 'Sofía', 'edad': 28},
{'nombre': 'Pedro', 'edad': 22}
]
persona_joven = encontrar_persona_mas_joven(lista_de_personas)
print(f"Lista de personas: {lista_de_personas}")
print(f"La persona más joven es: {persona_joven}")
lista_vacia = []
persona_joven_vacia = encontrar_persona_mas_joven(lista_vacia)
print(f"Lista de personas vacía: {lista_vacia}")
print(f"La persona más joven en la lista vacía es: {persona_joven_vacia}")
Explicación del Código:
-
def
encontrar_persona_mas_joven(lista_personas)::
- Se define una función llamada
encontrar_persona_mas_joven que toma un argumento:
lista_personas, que se espera que sea una lista de diccionarios.
-
"""Docstring...""":
- La cadena de documentación explica la
función, sus argumentos y lo que devuelve.
-
if not lista_personas::
- Esta línea verifica si la lista
lista_personas está vacía. Si lo está (not lista_personas
es True), la función devuelve None, ya que no hay personas
en la lista para comparar.
-
persona_mas_joven =
lista_personas[0]:
- Si la lista no está vacía, se asume
inicialmente que el primer diccionario de la lista (
lista_personas[0])
representa a la persona más joven. Se asigna este diccionario a la
variable persona_mas_joven.
-
for persona in
lista_personas[1:]::
- Se inicia un bucle
for para
iterar sobre el resto de la lista lista_personas,
comenzando desde el segundo elemento ([1:]). La variable
persona tomará el valor de cada diccionario en esta parte
de la lista.
-
if persona['edad'] <
persona_mas_joven['edad']::
- Dentro del bucle, se compara la edad de
la
persona actual (persona['edad']) con la
edad de la persona actualmente considerada la más joven (persona_mas_joven['edad']).
- Si la edad de la
persona
actual es menor, significa que hemos encontrado una persona más joven.
-
persona_mas_joven = persona:
- Si se encuentra una persona más joven, se
actualiza la variable
persona_mas_joven para que ahora
almacene el diccionario de esta persona.
-
return persona_mas_joven['nombre']:
- Después de iterar sobre toda la lista (o
si la lista original estaba vacía), la función devuelve el valor de la
clave
'nombre' del diccionario almacenado en
persona_mas_joven. Esta será el nombre de la persona con la edad
más baja encontrada en la lista.
-
Ejemplo de uso:
- Se crea una lista de diccionarios
llamada
lista_de_personas, donde cada diccionario
representa una persona con su nombre y edad.
- Se llama a la función
encontrar_persona_mas_joven con esta lista y el resultado (el
nombre de la persona más joven) se almacena en la variable
persona_joven.
- Se imprime la lista original y el nombre
de la persona más joven.
- También se incluye un ejemplo con una
lista vacía para mostrar cómo la función maneja este caso.
.