我想將 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
提交
取消