在字符串格式键字段中添加其他字符
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))
我正在尝试创建一个基本的 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))