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

Python3如何通过字典键实现格式化输出的对齐?

问题

我熟悉Python3中的位置参数格式化方式,示例如下:

D = {'name': 'Bob', 'status': 'Fully Employed'}
print("{0:<8}"  "{1:>20}".format(D['name'], D['status']))
# 输出:"Bob     "  "      Fully Employed"

我希望通过字典键来指定对应值的显示对齐方式,请问有没有简便的实现方法?

我尝试了下面的写法,但报错了:

print( "{'name':<8}  {'status':>20}".format( **D ) )
# 报错信息:
# Traceback (most recent call last):
#   File "<stdin>", line 1, in <module>
# KeyError: "'name'"
解决方法

你的写法出错是因为格式字符串里给键名加了单引号,Python会把'name'当成字典的键去查找,但你的字典里实际的键是不带引号的name,自然找不到匹配项。

正确的写法是去掉键名的引号,把对齐格式直接跟在键名后面:

D = {'name': 'Bob', 'status': 'Fully Employed'}
print("{name:<8}  {status:>20}".format(**D))

运行后会得到你想要的对齐效果:

Bob           Fully Employed

如果你的Python版本是3.6及以上,推荐用更简洁的f-string实现,可读性更强:

D = {'name': 'Bob', 'status': 'Fully Employed'}
print(f"{D['name']:<8}  {D['status']:>20}")

或者也可以用get()方法避免键不存在时抛出异常:

print(f"{D.get('name', ''):<8}  {D.get('status', ''):>20}")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 19:20:33