在for循环之外使用for循环变量

时间:2019-12-12 01:03:33

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

我不知道这怎么可能?在这里,我在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))

1 个答案:

答案 0 :(得分:4)

这是可能的,因为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