【发布时间】:2020-09-22 20:46:37
【问题描述】:
所以我有这本名称和值的字典,我试图打印它们之间的空格,并用最长键的长度填充。
下面的代码可以满足我的要求,但是 17 是我的单元测试中硬编码的,我想用变量 long_key 替换它。
longest_key = max(len(x) for x in sorted_dict)
# longest_key is 17 for unit test
for k, v in sorted_dict:
print("{0:<17}".format(k), v)
我试着做这里写的:https://stackoverflow.com/a/54605046/2415706
喜欢:
print("{0:<{longest_key}}".format(k), v)
并且还使用了全局关键字,但我不断收到关于最长键的键错误。谢谢!
更新:对于阅读本文的任何人,此打印混合了 f 字符串(虽然它缺少 f ......)和 .format。 f-string 是最新的东西,也是最清晰的,所以去吧。它应该看起来像:
print(f"{k:<17} {v}")
我的任务的下一部分随机奖励,如果您必须在值上运行函数,您可以在 {} 中执行此操作,例如:
print(f"{some_function(k):<17} {some_other_function(v)}")
【问题讨论】:
-
这是我参与的一个程序中的一行。
print('{0}{1:>{2}}'.format(char, dictionary.get(char, 0), length))并且可以对其进行返工以做你想做的事。填充在{2}中指定(等于length)
标签: python for-loop string-formatting f-string