Python中如何使用for循环生成指定结构的嵌套字典
问题排查
你的原有代码存在两处明显问题:
- 未预先为外层字典的每个
John*键初始化内层空字典,直接对dicts[k][i]赋值会触发KeyError - 多余的第三层
values循环:遍历整个values列表时,每个dicts[k][i]最终会被覆盖为列表最后一个元素John,虽然值刚好匹配但逻辑错误且冗余
修正代码
基础循环写法
dicts = {} inner_keys = range(4) outer_keys = ['John'+str(k+1) for k in range(3)] for k in outer_keys: # 初始化内层字典 dicts[k] = {} for i in inner_keys: dicts[k][i] = 'John'
简洁字典推导式写法
dicts = {f'John{k+1}': {i: 'John' for i in range(4)} for k in range(3)}
两种写法运行后得到的输出都和你预期的结果完全一致。
内容的提问来源于stack exchange,提问作者georgehere
相关产品推荐
相关产品推荐

