¿Cómo obtener el primer y último valor de un bucle en Python?
Quiero sólo el primer y último valor, es decir, 2021-01-30 15:51:47 -2.0665672163030704e-06 y 2021-01-30 15:51:51 -1.0708335011265263e-05. Además, este código proporciona la fecha de cada segundo, pero quiero el resultado para cada minuto.
from datetime import datetime, timedelta
from astropy.time import Time
start_date_time = datetime(2021, 1, 30, 15, 00, 00)
end_date_time = datetime(2021,1, 30,16,00,00)
time_diff = int((end_date_time -
start_date_time).total_seconds())
for i in range(0, time_diff, 60): #resultado para cada minuto
day = (start_date_time + timedelta(0, i))
dt = Time(day)
jd =dt.jd
# print(day,jd)
eph = swe.calc_ut(jd,2)[0][3]
if eph < 0:
print(dt,eph)
Salida -
2021-01-30 15:51:47 -2.0665672163030704e-06
2021-01-30 15:52:47 -1.1431273790932175e-05
davy.ai
Para obtener solo el primer y último valor de la salida, puede modificar el código de la siguiente manera:
Aquí, usamos la función
replace
para redondear hacia abajo los tiempos de inicio y finalización al minuto más cercano. Se modifica la funciónrange
para iterar cada minuto en lugar de cada segundo. Los resultados se agregan a una lista y podemos recuperar el primer y último valor de esta lista mediante la indexación.Tenga en cuenta que esto supone que el módulo
swe
que se utiliza está disponible y está instalado correctamente.