在python中打印等间距列表最简洁的方法是什么?

时间:2017-12-10 02:12:50

标签: python

请关闭,如果这是重复,但this answer不回答我的问题,因为我想打印列表,而不是列表中的元素。

例如,以下内容不起作用:

mylist = [0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15]
print(%3s % mylist)

期望的输出:

[  0  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15]

基本上,如果列表中的所有项目都是n个数字或更少,则相等的间距会在打印输出中给出每个项目n+1个点。就像c ++中的setw一样。假设n已知。

如果我错过了类似的问题,请随时投票结束。

4 个答案:

答案 0 :(得分:3)

您可以使用以下示例中的格式。如果你真的需要方括号,那么你将不得不摆弄一下

lst = [0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15]

frmt = "{:>3}"*len(lst)

print(frmt.format(*lst))
  0  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15

答案 1 :(得分:3)

items=range(10)
''.join(f'{x:3}' for x in items)
'  0  1  2  3  4  5  6  7  8  9'

答案 2 :(得分:1)

如果其他答案都不起作用,请尝试以下代码:

    output = ''
    space = ''
    output += str(list[0])
    for spacecount in range(spacing):
        space += spacecharacter
    for listnum in range(1, len(list)):
        output += space
        output += str(list[listnum])
    print(output)

答案 3 :(得分:0)

我认为这是最好的,因为它允许你按照自己的意愿操纵列表。甚至数字化。

mylist = [0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15]
print(*map(lambda x: str(x)+" ",a))