Python字典遍历:如何按组输出每个索引对应的各键对应值
解决思路
你当前存储统计结果的字典结构为「单个统计指标对应所有组的结果列表」,每个列表的第0位对应第1个子列表的统计值、第1位对应第2个、第2位对应第3个。要实现按组输出,只需先遍历组序号,再逐个读取每个统计指标下对应序号的结果即可。
直接输出代码
# 遍历3个组,序号从0到2 for group_idx in range(3): print(f"组{group_idx + 1}") for key, value_list in my_dictionary.items(): print(f"{key}{value_list[group_idx]}") # 每组之间打印空行分隔 print()
如果后续子列表数量不固定,可以用通用写法自动获取组数,不需要手动修改数值:
# 自动读取组数,适配子列表数量变化的场景 group_count = len(next(iter(my_dictionary.values()))) for group_idx in range(group_count): print(f"组{group_idx + 1}") for key, value_list in my_dictionary.items(): print(f"{key}{value_list[group_idx]}") print()
可选:调整存储结构为按组存储
如果后续经常需要按组取用统计值,可以先把原字典转换为按组存储的列表结构,后续使用更方便:
# 转换为按组存储的字典列表 group_stats = [] group_count = len(next(iter(my_dictionary.values()))) for group_idx in range(group_count): current_group = {key: value_list[group_idx] for key, value_list in my_dictionary.items()} group_stats.append(current_group) # 按要求输出 for idx, stat in enumerate(group_stats, 1): print(f"组{idx}") for k, v in stat.items(): print(f"{k}{v}") print()
内容的提问来源于stack exchange,提问作者LG1
相关产品推荐
相关产品推荐

