Я хочу перебрать все в списке, кроме первых нескольких элементов, например:
for line in lines[2:]:
foo(line)
Это краткий, но копирует весь список, что не нужно. Я мог бы сделать:
del lines[0:2]
for line in lines:
foo(line)
Но это изменяет список, что не всегда хорошо.
Я могу это сделать:
for i in xrange(2, len(lines)):
line = lines[i]
foo(line)
Но это просто грубо.
Лучше может быть следующее:
for i,line in enumerate(lines):
if i < 2: continue
foo(line)
Но это не так очевидно, как самый первый пример.
Итак: Каким образом это сделать так же очевидно, как и в первом примере, но не копирует список без необходимости?