You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python中如何将字典嵌套列表的值按列分栏打印?

问题描述

我拥有一个包含字典嵌套列表的数据结构:

data = {'team A': {'id': ['1', '2'], 'name': ['AAA', 'BBB']}, 'team B': {'id': ['3', '4'], 'name': ['XXX', 'YYY']}}

我希望遍历该字典并按如下格式打印值:

|team A| 1 | AAA |
|team A| 2 | BBB |
|team B| 3 | XXX |
|team B| 4 | YYY |

尝试遍历主字典,但难以实现带分隔符'|'的分栏打印效果,请问该如何用Python实现?

解决方案

可以通过两层遍历配合字符串格式化来实现需求,具体代码如下:

基础实现代码

data = {'team A': {'id': ['1', '2'], 'name': ['AAA', 'BBB']}, 'team B': {'id': ['3', '4'], 'name': ['XXX', 'YYY']}}

# 遍历外层字典的团队名与成员数据
for team_name, member_info in data.items():
    # 取出当前团队的id和name列表
    id_list = member_info['id']
    name_list = member_info['name']
    # 按索引配对id和name,输出目标格式
    for idx in range(len(id_list)):
        print(f"|{team_name}| {id_list[idx]} | {name_list[idx]} |")

带长度校验的增强版

如果需要避免因id和name列表长度不一致导致的错误,可以添加简单校验:

data = {'team A': {'id': ['1', '2'], 'name': ['AAA', 'BBB']}, 'team B': {'id': ['3', '4'], 'name': ['XXX', 'YYY']}}

for team_name, member_info in data.items():
    id_list = member_info['id']
    name_list = member_info['name']
    # 校验两个列表长度是否匹配
    if len(id_list) != len(name_list):
        print(f"提示:团队{team_name}的id与name列表长度不匹配,跳过该团队")
        continue
    # 正常输出格式内容
    for idx in range(len(id_list)):
        print(f"|{team_name}| {id_list[idx]} | {name_list[idx]} |")

代码说明

  1. 外层循环通过data.items()获取每个团队的名称和对应的成员信息字典;
  2. 从成员信息字典中提取id和name列表,假设二者是一一对应的关系;
  3. 内层循环通过索引遍历,将团队名、对应位置的id和name用f-string格式拼接成要求的分栏样式。

内容的提问来源于stack exchange,提问作者Sashaank

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.06 10:01:13