我想将 n 行打印到列中。列大小取决于每行中最长的数据。我有类似的东西data = [['abcdefghijk', 'b','c'],['121','313','5441256652'],['--','310','36']['642','65','10']]并想把它变成abcdefghijk 121 -- 642b 313 310 65c 5441256652 36 10每列的宽度是行中最长元素的长度 + 4我知道对于这种情况我可以使用row_format ='{:<15}{:<14}{:<7}{:<7}'for v in zip(*data): print (row_format.format(*v))但是,如何在不事先知道元素长度的情况下获得数据中 n 行的相同模式?
1 回答

肥皂起泡泡
TA贡献1829条经验 获得超6个赞
您可以动态构建row_format字符串:
row_format = ''.join(f'{{:<{len(max(x, key=len)) + 4}}}' for x in data)
for v in zip(*data):
print (row_format.format(*v))
比如这个数据
data = [['a', 'bbbbbb', 'c'],
['121', '313', '0'],
['------', '310', '36'],
['3', '455', '5']]
是这样打印的:
a 121 ------ 3
bbbbbb 313 310 455
c 0 36 5
添加回答
举报
0/150
提交
取消