Python实现自动生成数字键向字典追加列表值的方法咨询
错误原因
- 字典
T初始化后为空,直接调用T[index].append(K)时,index对应的键还不存在,会触发KeyError报错。 enumerate默认从0开始计数,你需要的1、2、3连续编号需要额外指定起始值。- 按你给出的预期输出结构,每个键对应唯一的子列表,不需要使用
append方法,直接赋值即可。
修正代码(保留原有核心逻辑,适配你要的输出结构)
T = dict() # 指定start=1让枚举索引从1开始 for index, K in enumerate(tab, start=1): OrderVertices(K, oG) if K in T.values(): pass else: # 直接给对应编号的键赋值为处理后的列表K T[index] = K print(T)
如果你确实需要同编号下追加多个列表的能力,调整对应分支的代码即可:
T = dict() for index, K in enumerate(tab, start=1): OrderVertices(K, oG) if K in T.values(): pass else: # 键不存在时先初始化为空列表再追加 if index not in T: T[index] = [] T[index].append(K) print(T)
内容的提问来源于stack exchange,提问作者Jay
相关产品推荐
相关产品推荐

