Следующее преобразует все ваше время в datetime.timedelta
объекты.Тогда сравнения будут работать, чтобы вернуть разные цвета.Вот пример кода:
from datetime import datetime, timedelta, time
def to_timedelta(t):
t_dt = datetime.strptime(str(t),"%H:%M:%S")
t_delta = timedelta(hours=t_dt.hour,
minutes=t_dt.minute,
seconds=t_dt.second)
return t_delta
def color():
# Modified variable names to use the timedelta variables
if res_td < t1_td:
return "red"
elif res_td < t2_td:
return "orange"
elif res_td > t2_td:
return "green"
t1 = time(0,1,0)
t2 = time(0,2,0)
t1_td = to_timedelta(t1)
t2_td = to_timedelta(t2)
# This returns "red"
res = time(0,0,4)
res_td = to_timedelta(res)
color1 = color()
print color1
# This returns "orange"
res = time(0,1,0)
res_td = to_timedelta(res)
color2 = color()
print color2
# This returns "green"
res = time(0,7,4)
res_td = to_timedelta(res)
color3 = color()
print color3
Другой замечательный вариант - pandas
, который позволяет легко преобразовывать в timedelta и сравнивать объекты timedelta.После установки панд (pip install pandas
) будет работать следующее (также используется функция color()
сверху):
import pandas as pd
def to_timedelta_pd(t):
# Return pandas timedelta from passed datetime.time object
t_delta = pd.to_timedelta(str(t))
return t_delta
t1 = time(0,1,0)
t2 = time(0,2,0)
t1_td = to_timedelta_pd(t1)
t2_td = to_timedelta_pd(t2)
# This returns "red"
res = time(0,0,4)
res_td = to_timedelta_pd(res)
color1 = color()
print color1
# This returns "orange"
res = time(0,1,0)
res_td = to_timedelta_pd(res)
color2 = color()
print color2
# This returns "green"
res = time(0,7,4)
res_td = to_timedelta_pd(res)
color3 = color()
print color3