python - 循环完成时计算程序中断
问题描述
我有nested_group_map
基于 4 个组的字典,每个组都有一个shed_count
在每个组中调用的键。我如何制作一个程序,通过遍历键/值以范围循环方式添加+1
到每个程序,然后在通过范围循环的次数完成时中断?基本上我在想的是每组应该==哪12个。shed_count
nested_group_map
cycles
shed_count
cycles
抱歉有点奇怪的问题,希望这是有道理的。
import numpy as np
cycles = 12
nested_group_map = {
'group_l1n' : {
'shed_count': 0,
},
'group_l1s' : {
'shed_count': 0,
},
'group_l2n' : {
'shed_count': 0,
},
'group_l2s' : {
'shed_count': 0,
}
}
def cycle_checker(cycles):
check_sum = [int(cycles)]
print(f'cycle_checker after for loop sum is {sum(check_sum)}')
print(f'cycle_checker appended after for loop is {check_sum}')
for group in nested_group_map:
for k,v in nested_group_map[group].items():
if k in ('shed_count'):
check_sum.append(int(v))
print(f'cycle_checker after for loop sum is {sum(check_sum)}')
print(f'cycle_checker appended after for loop is {check_sum}')
return np.all(check_sum)
while not cycle_checker(cycles):
for group in nested_group_map:
for v in nested_group_map[group].values():
v = v + 1
print(v)
这只会创建一个无限循环,感谢任何新手提示:)
解决方案
当你这样做
for v in nested_group_map[group].values():
v = v + 1
你没有nested_group_map
以任何方式改变。请查看此答案以获得简要说明。为此,您必须使用密钥明确写入:
group_map = nested_group_map[group]
for k, v in group_map.items():
group_map[k] = v + 1
推荐阅读
- linux - 错误:httpd24-tools 与 httpd-tools-2.2.34-1.16.amzn1.x86_64 冲突
- python - 如何从 Django InMemoryUploadedFile 解析 pdf?
- javascript - React-native:除非更改状态,否则绝对定位的组件不会完全渲染
- r - 我们可以在 Rblogdown 网页中创建参考链接吗
- javascript - 如何将事件添加到子组件?
- objective-c - 如何将 OpenGLES 着色器转换为与 Metal 兼容的着色器?
- php - Woocommerce 追加销售 CSV - 为什么它有时只工作?
- azure-data-factory - Azure VM 上 SQL Server 的 IR 设置
- jquery - 检查单选按钮是否具有列表中的值
- javascript - 两个字符串相加会产生意想不到的结果