flag = False # I prefer booleans
for i in range(n):
if condition(i): # We always need it to be True
if not flag:
statement(i)
flag = True
else:
statement2(i)
Пока это будет работать, но так как вы сказали, что есть хотя бы один, удовлетворяющий условию
foo = range(n) # any iterable
iterfoo = iter(foo)
initial_value = next(i for i in iterfoo if condition(i))
statement(initial_value)
for i in iterfoo:
if condition(i):
statement2(i)
Теперь оба эти (если я что-то не упустил) должны выполнитьТо же самое, просто по-разному, так что это ваш выбор, хотя он также экономит вам 2 строки кода, так как вы не будете делать первую строку в вашем фактическом коде, поэтому я голосую за второй фрагмент: D