为什么没有方法格式化Python字典键缩进?

时间:2016-07-05 21:50:10

标签: python

由于某种原因,格式化字典键的方法仅在指定宽度大于4后开始缩进。任何想法为什么?

for i in range(10):
    print({'{0:>{1}}'.format('test',i):12}, "should be indented", i)

输出:

{'test': 12} should be indented 0
{'test': 12} should be indented 1
{'test': 12} should be indented 2
{'test': 12} should be indented 3
{'test': 12} should be indented 4
{' test': 12} should be indented 5
{'  test': 12} should be indented 6
{'   test': 12} should be indented 7
{'    test': 12} should be indented 8
{'     test': 12} should be indented 9

此外,当我尝试将带有缩进键的字典输出到文本文档时,缩进不一致。例如,当我指定10个字符的常量缩进宽度时,缩进在输出中不一致。

1 个答案:

答案 0 :(得分:5)

这与dict键无关,数字4也没有什么特别之处;它恰好是字符串"test"的长度。

使用{0:>{1}},您说整个块应该右对齐到至少{1}个字符的总长度,包括您传递的字符串{{1 }}。因此,如果{0}{1},而6{0},则字符串将填充两个空格,总长度为6。

"test"

这与In [11]: "{0:>{1}}".format("test", 6) Out[11]: ' test' 的作用类似:

str.rjust

如果你想要一个独立于字符串原始长度的常量填充,你可以,例如,使用字符串乘法,或者使用更复杂的格式字符串,在放入实际字符串之前将空字符串填充到某个给定的长度。

In [12]: "test".rjust(6)
Out[12]: '  test'