Python - Necesito Mostrar el promedio de edad de las mujeres, sacada de una lista

 
Vista:
sin imagen de perfil
Val: 18
Ha disminuido su posición en 4 puestos en Python (en relación al último mes)
Gráfica de Python

Necesito Mostrar el promedio de edad de las mujeres, sacada de una lista

Publicado por lucas (10 intervenciones) el 29/04/2020 23:16:15
son 4 mujeres y la fecha de cada una son:
02/05/1943
07/09/1984
30/08/1995
21/12/1967
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 156
Ha disminuido 1 puesto en Python (en relación al último mes)
Gráfica de Python

Necesito Mostrar el promedio de edad de las mujeres, sacada de una lista

Publicado por Andrés (55 intervenciones) el 30/04/2020 07:01:36
1
2
3
4
5
6
7
8
#!/usr/bin/env python3
 
import datetime
 
current_year = datetime.datetime.now().year
dates_str = ['02/05/1943', '07/09/1984', '30/08/1995', '21/12/1967']
ages = [current_year - dob for dob in [datetime.datetime.strptime(date_str, '%d/%m/%Y').date().year for date_str in dates_str]]
print(sum(ages)/len(ages))
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de joel
Val: 3.475
Oro
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

Necesito Mostrar el promedio de edad de las mujeres, sacada de una lista

Publicado por joel (901 intervenciones) el 30/04/2020 10:29:39
Hola Andres, tu código esta muy bien, pero no tienes en cuenta la fecha, solo el año....

En tu caso, te da como resultado: [77, 36, 25, 53] y no es del todo correcto, ya que no tienes en cuenta ni el día ni el mes... lo correcto seria: [77, 35, 24, 52]

Una posible solución...
1
2
3
4
5
6
7
8
9
import datetime
 
def calculateAge(birthDate):
    today = datetime.date.today()
    return today.year - birthDate.year - ((today.month, today.day) < (birthDate.month, birthDate.day))
 
dates_str = ['02/05/1943', '07/09/1984', '30/08/1995', '21/12/1967']
ages = [calculateAge(datetime.datetime.strptime(date_str, '%d/%m/%Y')) for date_str in dates_str]
print(sum(ages)/len(ages))
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 18
Ha disminuido su posición en 4 puestos en Python (en relación al último mes)
Gráfica de Python

Necesito Mostrar el promedio de edad de las mujeres, sacada de una lista

Publicado por lucas (10 intervenciones) el 30/04/2020 16:01:00
muchas gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar