Python遍历字典时如何同时输出条目序号、键与对应值
报错原因
data.info.items() 遍历返回的每一项都是仅包含键、值的二元组,直接尝试用三个变量接收自然会出现解包数量不匹配的错误。
解决方案
使用Python内置的enumerate()函数即可实现需求,它可以在遍历可迭代对象的同时自动生成序号,不需要手动维护计数变量,也不需要提前把键值拆分为两个独立列表。
# start=1参数指定序号从1开始,匹配你需要的输出格式 for idx, (key, value) in enumerate(data.info.items(), start=1): print(f"{idx}. {key}: {value}")
代码说明
注意代码中(key, value)外层的括号不能省略:enumerate返回的每一项结构为(序号, (键, 值)),加括号后相当于先拆分出序号,再把第二个位置的二元组拆分为键和值,就能避免解包错误。
如果你坚持要用之前拆分好的keys_list和values_list实现,也可以用以下写法,但该方案每次查询索引都要遍历列表,效率远低于上面的方案,不推荐:
for idx in range(len(keys_list)): print(f"{idx+1}. {keys_list[idx]}: {values_list[idx]}")
内容的提问来源于stack exchange,提问作者BassBarPat
相关产品推荐
相关产品推荐

