Можете ли вы создать все часовые слоты и удалить использованные?
def create_hour_slots(start, end):
return list(zip(range(start, end), range(start+1, end+1)))
today = create_hour_slots(7, 19)
today
[(7, 8), (8, 9), (9, 10), (10, 11), (11, 12), (12, 13), (13, 14), (14, 15), (15, 16), (16, 17), (17, 18), (18, 19)]
def remove_range(start_subtract, end_subtract, day_range):
slots_to_remove = create_hour_slots(start_subtract, end_subtract)
availability = [r in day_range for r in slots_to_remove]
if not all(availability):
unavailable = [r for r in slots_to_remove if r not in day_range]
print("Unavailable slots: {}".format(unavailable))
return False
remaining_range = [s for s in day_range if s not in slots_to_remove]
return remaining_range
remove_noon_slot = remove_range(12, 13, today)
remove_noon_slot
[(7, 8), (8, 9), (9, 10), (10, 11), (11, 12), (13, 14), (14, 15), (15, 16), (16, 17), (17, 18), (18, 19)]
remove_unavailable_slot = remove_range(6, 8, today)
Unavailable slots: [(6, 7)]