Я выкладываю это так, чтобы вам было легче следовать.Когда кто-то плохо знаком с Python, такие вещи, как поведение со списком, могут быть ... непрозрачными.
Кстати, я фанат дополнительных операторов печати, поэтому я могу видеть, что делает код.Просто закомментируйте их, когда они вам больше не нужны.
Конечно, есть более компактные способы сделать это, ответ @ [Robert Hamilton] - отличный пример.
import datetime
import time
list = ["18:00","19:00", "20:00", "21:00", "22:00", "23:00"]
lol = time.strftime("%H:%M")
my_new_list = [ ] # here is your new variable, we'll start empty
for i in list:
print('checking i={}, my_new_list={}'.format(i, my_new_list))
if i > lol:
if len(my_new_list) < 3:
my_new_list.append(i)
print('keeping i={} since i > lol, now my_new_list={}'.format(i, my_new_list))
else:
print('ignoring i={}, already have enough.').format(i))
else:
print('skipping i={}, since i <= lol={}'.format(i, lol))
С несколько более эффективным телом цикла (мы разрываем цикл после нахождения 3 вещей):
for i in list:
if i <= lol:
continue # keep looking
# if we reach this point then i > lol.
print('keeping i={}'.format(i)
my_new_list.append(i)
if len(my_new_list) >= 3:
break