按excel格式打印列中的列表列表

按excel格式打印列中的列表列表,excel,python-3.x,list,printing,element,Excel,Python 3.x,List,Printing,Element,对不起,如果这是一个noob问题 我有一个列表,例如“a”,在a1、a2、a3中有两个或两个树列表,如: [ [1,2], [0,0,0], [1,2,3,4,5] ] [ [1,2,3,4], [0,0], [1,2,3] ] 等等 里面的每个列表的长度都不一样,所以当我做一个简单的 对于范围内的i(len(a)): 打印(a[i]) 结果是: [[1,2],[0,0,0],[1,2,3,4,5]] [[1,2,3,4],[0,0],[1,2,3]] 当我等待列表中的元素在列中对齐的

对不起,如果这是一个noob问题

我有一个列表,例如
“a”
,在
a1、a2、a3
中有两个或两个树列表,如:

[ [1,2], [0,0,0], [1,2,3,4,5] ]
[ [1,2,3,4], [0,0], [1,2,3]   ]
等等

里面的每个列表的长度都不一样,所以当我做一个简单的

对于范围内的i(len(a)):
打印(a[i])
结果是:

[[1,2],[0,0,0],[1,2,3,4,5]]
[[1,2,3,4],[0,0],[1,2,3]]
当我等待列表中的元素在列中对齐的结果时:

[[1,2]          [0,0,0]      [1,2,3,4,5]]
[[1,2,3,4]      [0,0]        [1,2,3]]
我该怎么做

提前感谢您的帮助。

您可以使用string的方法根据最大值对齐列表:

a=[[1,2],[0,0,0],[1,2,3,4,5],
[[1, 2, 3, 4], [0, 0], [1, 2, 3]]]
尺寸=最大值([len(str(x)),适用于a中的sub,适用于x中的sub])+4
对于a中的sub:
对于sub中的x:
打印(str(x).ljust(大小),end=“”)
打印()
这使得:

[1, 2]             [0, 0, 0]          [1, 2, 3, 4, 5]    
[1, 2, 3, 4]       [0, 0]             [1, 2, 3]   

使用一个循环和方法的另一个选项可以是:

<代码>对于a中的子组件: 打印(“”.join((str(x).ljust(大小)表示子对象中的x)))
另一种快速而肮脏的方法,使用str.format:

a = [[ [1,2], [0,0,0], [1,2,3,4,5] ],
     [ [1,2,3,4], [0,0], [1,2,3]   ],
     [ [1], [2,2]],
     []]

max_sublist = max(a, key=len)
max_len = len(str(max((i for subl in a for i in subl), key=lambda k: len(str(k)))))

for subl in a:
    print('[{}]'.format(('{!s:<{width}}' * len(max_sublist)).format(*subl, *' '*len(max_sublist), width=max_len)))

这回答了你的问题吗@BSQL这完全不是重复的。它是关于文件的实际打印(使用打印机)。OP询问有关打印到屏幕的问题
[[1, 2]         [0, 0, 0]      [1, 2, 3, 4, 5]]
[[1, 2, 3, 4]   [0, 0]         [1, 2, 3]      ]
[[1]            [2, 2]                        ]
[                                             ]