Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Python: Общие вопросы > Как перебрать элементы последовательности


Автор: srd 16.5.2007, 02:36
Например, есть список и нужно в цикле перебрать все его элементы, начиная с третьего.
Так:
Код

for i in sq[3:]:

не подходит, потому что список sq может быть очень большим и создавать его копию без первых трёх элементов накладно.

Автор: pythonwin 16.5.2007, 08:12
Код

l1=l[:3]+[x*2 for i, x in enumerate(l) if i>2]

или
Код

>>> for i, x in enumerate(l):
    if i>2:
        l[i]=x*2


Автор: V_I 16.5.2007, 09:27
srd
можно и так:
Код

for i in xrange(len(sq)):
  if i < 2:
    continue

Автор: srd 16.5.2007, 11:06
Спасибо, идея понятна.

З.Ы.
О существовании функции enumerate ранее не подозревал ;)

Автор: silently_fox 18.5.2007, 21:56
самое очевидное:
Код

for i in xrange(2,len(sq)):
    pass

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)