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

如何在Python中一行打印字典列表中指定的键值对

如何在Python中一行打印字典列表中指定的键值对

嘿,我来帮你搞定这个问题!你想要的是从字典列表里提取指定键的键值对,按整洁的格式每行打印一条记录,还能方便扩展要显示的字段,对吧?

你的现有代码问题出在print(*record,[record[k] for k in info])这行——*record会把字典的所有键拆成参数打印出来,再加上后面的列表,自然就输出混乱了。咱们换个思路,直接针对你指定的info列表生成想要的格式字符串就行:

方法一:简洁的生成器表达式 + 字符串拼接

info = ['phaseName', 'racePosition', 'hillTime']                        

for record in competitorRankDetails:
    # 遍历info里的每个键,生成"键: 值"的字符串,再用" , "连接起来
    print(' , '.join(f"{k}: {record[k]}" for k in info))

运行效果(对应你的示例数据):

phaseName: Moto 1 , racePosition: 6 , hillTime: 2.754
phaseName: Moto 2 , racePosition: 7 , hillTime: 2.732
phaseName: Moto 3 , racePosition: 3 , hillTime: 2.745

可选:处理键不存在的情况(避免报错)

如果担心某些字典里可能没有info中的键,可以用dict.get()方法设置默认值:

for record in competitorRankDetails:
    print(' , '.join(f"{k}: {record.get(k, 'N/A')}" for k in info))

这样如果某个键不存在,会显示N/A而不是抛出KeyError。

扩展字段超方便

以后要加更多字段,直接往info列表里加就行,比如想加上time和score:

info = ['phaseName', 'racePosition', 'hillTime', 'time', 'score']

循环代码完全不用改,输出会自动包含新的键值对,完美符合你的需求~

备注:内容来源于stack exchange,提问作者Pintglass

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.14 12:18:06