字符串格式错误?

Wrong string formatting?

程序如下:

layout = "{0:>5}"
layout += "{1:>10}"
for i in range(2, 13):
    layout += "{"+str(i)+":9>}"


index = []
for i in range(13):
    index.append(i)
index = tuple(index)
print(layout.format(*index))

它打印出来是这样的:

    0         123456789101112

但我希望它看起来像这样(空格数可能有误):

    0    1   2   3  4  5  6  7  8  9  10  11  12

我做错了什么?

":9>}"

应该是

":>9}"

这给出:

    0         1        2        3        4        5        6        7        8        9       10       11       12

要看起来和你问的一模一样:

实际上,您要求的是一些奇怪的东西,但这里有一种更简洁的方式来写您所写的内容:

layout = "{0:>5}{1:>5}" + ''.join("{" + str(i) + ":>4}" for i in range(2, 13))
print(layout.format(*range(13)))

给出:

    0    1   2   3   4   5   6   7   8   9  10  11  12