Получить количество итераций после завершения цикла for - PullRequest
0 голосов
/ 05 сентября 2018

В питоне для цикла, как я могу получить значение I ниже, когда цикл завершен? Есть ли какой-то идиоматический способ сделать это, не определяя переменную снаружи и цикл и сохраняя i в нем при каждом запуске цикла? Что-то вроде finally для цикла for?

for i, data in enumerate(somevar):
    # do something
# get what i was when for loop completed here??

Ответы [ 2 ]

0 голосов
/ 05 сентября 2018

i будет работать на то, что вы хотите.

Циклы

for не имеют блока finally, но у них есть else, который выполняется, если вы не нажмете break в основном теле.

for i, value in enumerate(values):
     if value == some_value:
          print("Found the value")
          break
else:
    print("Didn't find value we were looking for")

print("Went through for loop {} times".format(i))
0 голосов
/ 05 сентября 2018

Ничего не делать. Новая область не создается вашим циклом for. Вы можете получить доступ к i сразу после и вне цикла:

for i, data in enumerate(somevar):
    pass

print(i)  # 9

Подробнее см. Области применения в Python для циклов .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...