Цикл "For" первая итерация - PullRequest
       24

Цикл "For" первая итерация

60 голосов
/ 18 декабря 2009

Я хотел бы узнать, существует ли элегантный питонический способ выполнения какой-либо функции на первой итерации цикла. Единственная возможность, о которой я могу думать, это:

first = True
for member in something.get():
    if first:
        root.copy(member)
        first = False
    else:
        somewhereElse.copy(member)
    foo(member)

Ответы [ 12 ]

1 голос
/ 18 декабря 2009

Разве вы не можете сделать root.copy(something.get()) до цикла?

РЕДАКТИРОВАТЬ: Извините, я пропустил второй бит. Но вы получите общее представление. В противном случае, перечислите и проверьте для 0?

EDIT2: Хорошо, избавился от глупой второй идеи.

0 голосов
/ 21 февраля 2017

Ваш вопрос противоречив. Вы говорите «делать что-то только на первой итерации», тогда как на самом деле вы говорите «делать что-то другое» на первой / последующих итерациях. Вот как я бы попытался:

copyfn = root.copy
for member in something.get():
    copyfn(member)
    foo(member)
    copyfn = somewhereElse.copy
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...