【问题标题】:Using for loop variable outside of the for loop [duplicate]在for循环之外使用for循环变量[重复]
【发布时间】:2020-04-05 08:31:22
【问题描述】:

我不明白这怎么可能?这里我使用i 的值作为for 循环,在for 循环之外。

for i, kv in enumerate(bucket): 
    k, v = kv  
    if key == k:
        key_exists = True
        break 

#here is the issue...

if key_exists:
    bucket[i] = ((key, value))
    print(i)
else:
    bucket.append((key, value))

【问题讨论】:

标签: python python-3.x for-loop


【解决方案1】:

这是可能的,因为 Python 没有块作用域。在for 循环中分配给的变量(在您的代码中为i)没有其自身更窄的范围,仅限于for 循环;它存在于外部范围内,因此在循环后仍然可用。

例如:

for i in range(10):
    pass

print(i) # prints 9

循环内的任何其他赋值也是如此。这里,变量j 在循环之后可见,原因相同:for 循环块不是一个单独的、更窄的范围。

for i in range(10):
    j = 17

print(j) # prints 17

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-09-28
    • 1970-01-01
    • 2013-06-03
    • 1970-01-01
    • 2017-02-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多