在python for循环中,当循环完成时,如何获得下面的i值?是否有任何惯用的方法可以做到,而无需在循环外部定义变量并在每次循环运行中将i
存储在变量中?像某种finally
的for循环吗?
for i, data in enumerate(somevar):
# do something
# get what i was when for loop completed here??
答案 0 :(得分:2)
什么都不做。 for
循环不会创建新的作用域。您可以在循环之后和循环之外立即访问i
:
for i, data in enumerate(somevar):
pass
print(i) # 9
有关更多详细信息,请参见Scoping in Python 'for' loops。
答案 1 :(得分:1)
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))