python - 在 for 循环外使用 for 循环变量
问题描述
我不明白这怎么可能?在这里,我在循环外使用i
for循环的值。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 没有块作用域。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
推荐阅读
- python - Beautiful Soup 获得 td 类的数量
- python - 我怎样才能使游戏中的每个“金币”都引用 Python 迷宫游戏中的不同问题?
- powerbi - 如何在层次结构中汇总孩子的百分比?
- amazon-web-services - 从 kubernetes pod 获取 HTTP 请求日志?(运行 JupyterHub)
- javascript - 同一服务器上的相同文件。每个域的加载速度不同。为什么?
- jmeter - 正则表达式 - 无法捕获边界
- html - 为什么我的搜索按钮在我的搜索栏下方
- r - ggpubr (stat_compare_means) 中是否有一种方法可以在假设方差相等的情况下运行测试比较(而不是 R 默认 Welch 的 t 检验)
- python - Python:如何确定可以精确表示哪些浮点值并在不可以时发出警告?
- mysql - 如何使用带条件的 JOIN