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