1 usuario conectado

Encontrar persona más joven en Python

Comparte esto

 
Escribe un código Python que tome una lista de diccionarios, donde cada diccionario representa una persona con las claves "nombre" y "edad". El código debe devolver el nombre de la persona más joven de la lista.

.


Más ejercicios




Mostrar/Ocultar ejercicio resuelto


  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:

  1. 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.
  2. """Docstring...""":

    • La cadena de documentación explica la función, sus argumentos y lo que devuelve.
  3. 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.
  4. 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.
  5. 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.
  6. 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.
  7. 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.
  8. 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.

     

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

.