在字符串格式键字段中添加其他字符

Adding additional characters into the String Formatting key field

我正在尝试创建一个基本的 key/value table,如下所示:

someKey:               some info
aReallyLongKey:        more info
somthingElse:          other info

没有冒号,这真的很简单:

formatter = "{key:<25}{value}"

for k,v in myDict.items():
    print(formatter.format(key=k, value=v))

但是,这将不包括密钥后的“:”。我想要的是这样的(这个不行):

formatter = "{key+':':<25}{value}"

本质上,我想在密钥上附加一些内容,以便我得到: formatter.format(key=k+":", value=v),但在 formatter 字符串中附加了“:”。

我尝试过嵌套,但无法正常工作。是否有一种优雅的、原生的、Pythonic 的方式将“:”附加到字符串格式化程序中的键,以便我仍然可以在整个 "key:" 部分使用 <25 格式?

如果您使用的是 python 3.6+,您可以使用 f-strings:

轻松完成此操作
for k,v in myDict.items():
    print(f"{f'{k}:':<25}{v}")
    #or
    print(f"{k + ':':<25}{v}")

否则只需在格式化之前附加冒号(就像你问的那样):

formatter = "{key:<25}{value}".format
for k,v in myDict.items():
    print(formatter(key=k+':', value=v))