Я хочу перебрать все элементы списка, кроме первых нескольких, например:
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)
Но это не так очевидно, как в первом примере.
Итак: Какой способ сделать это так же очевидно, как первый пример, но не копировать список без необходимости?