python - 使用python中的格式打印列中的n行
问题描述
我想将 n 行打印成列。列大小取决于每行中最长的数据。
我有类似的东西
data = [['abcdefghijk', 'b','c'],['121','313','5441256652'],['--','310','36']['642','65','10']]
并想把它变成
abcdefghijk 121 -- 642
b 313 310 65
c 5441256652 36 10
每列宽度是行中最长元素的长度 + 4
我知道在这种情况下我可以使用
row_format ='{:<15}{:<14}{:<7}{:<7}'
for v in zip(*data):
print (row_format.format(*v))
但是,我如何在不事先知道元素长度的情况下获得具有 n 行数据的相同模式?
解决方案
您可以动态构建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
推荐阅读
- c++ - ICC 拒绝模板引用成员初始化
- node.js - ExpressJS 中的重定向、发送和获取参数
- paypal - Verify that mobile phone number is accociated with an active PayPal account
- java - Lucene Mmap 增加驻留内存
- java - java.lang.NoSuchFieldError: IMPORT_BEAN_NAME_GENERATOR
- group-by - 如何在 Microsoft Power Automate 中对 SharePoint 列表记录进行分组?
- hbase - Apache phoenix 的 order by 和 offset 问题在分页中给出重复的结果
- ios - 如何以编程方式快速获取关联域权利列表?
- ionic-framework - Ionic Appflow 动态 CHANNEL_NAME
- apache - 如何重定向 url htacces mod_rewrite?