技术问询:如何从字典列表逐个生成表格及无函数打印Tom记录
字典列表表格打印实现方案
需求说明
- 需求1:将字典列表中的每个字典依次打印为格式化表格
- 需求2:不使用函数,仅提取并打印列表中Tom的记录为表格
原代码问题分析
原代码存在以下关键问题:
- 字典列表
fe定义末尾多了逗号,导致其变为元组类型而非列表 - 变量
value被赋值为整数0,直接调用value["Name"]会触发类型错误,未正确获取列表中的字典元素 - 分隔线
dashes的format方法传入参数数量与占位符不匹配(4个占位符对应5个参数) - 未实现遍历所有元素的逻辑,也没有筛选Tom记录的判断条件
需求1:打印所有记录为表格
# 修正后的字典列表(移除多余逗号) fe = [ {"Name": "Tom", "age": 10, "group": "sdd", "points": 2}, {"Name": "Mark", "age": 5, "group": "sdo", "points": 6}, {"Name": "Pam", "age": 7, "group": "spp", "points": 4} ] # 生成表头与分隔线(参数与占位符数量匹配) dashes = "{:<20} + {:<8} + {:^14} + {:^11}\n".format("-"*20, "-"*8, "-"*14, "-"*11) info = "{:<20} | {:<8} | {:^14} | {:^11}\n".format("Name", "age", "group", "points") info += dashes # 遍历所有字典,拼接表格内容 for person in fe: info += "{:<20} | {:<8} | {:^14} | {:^11}\n".format(person["Name"], person["age"], person["group"], person["points"]) info += dashes # 打印完整表格 print(info)
需求2:仅打印Tom的记录为表格(不使用函数)
fe = [ {"Name": "Tom", "age": 10, "group": "sdd", "points": 2}, {"Name": "Mark", "age": 5, "group": "sdo", "points": 6}, {"Name": "Pam", "age": 7, "group": "spp", "points": 4} ] # 生成表头与分隔线 dashes = "{:<20} + {:<8} + {:^14} + {:^11}\n".format("-"*20, "-"*8, "-"*14, "-"*11) info = "{:<20} | {:<8} | {:^14} | {:^11}\n".format("Name", "age", "group", "points") info += dashes # 遍历筛选Tom的记录并拼接 for person in fe: if person["Name"] == "Tom": info += "{:<20} | {:<8} | {:^14} | {:^11}\n".format(person["Name"], person["age"], person["group"], person["points"]) info += dashes break # 找到目标后终止循环,提升效率 print(info)
内容的提问来源于stack exchange,提问作者Nethum
相关产品推荐
相关产品推荐

