由于某种原因,格式化字典键的方法仅在指定宽度大于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个字符的常量缩进宽度时,缩进在输出中不一致。
答案 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'