.
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.
.