在python中创建漂亮的列输出
发布于 2021-01-29 17:46:46
我正在尝试在python中创建一个不错的列列表,以与我创建的命令行管理工具一起使用。
基本上,我想要一个像这样的列表:
[['a', 'b', 'c'], ['aaaaaaaaaa', 'b', 'c'], ['a', 'bbbbbbbbbb', 'c']]
变成:
a b c
aaaaaaaaaa b c
a bbbbbbbbbb c
使用普通标签不会解决问题,因为我不知道每一行中最长的数据。
这与Linux中的’column -t’相同。
$ echo -e "a b c\naaaaaaaaaa b c\na bbbbbbbbbb c"
a b c
aaaaaaaaaa b c
a bbbbbbbbbb c
$ echo -e "a b c\naaaaaaaaaa b c\na bbbbbbbbbb c" | column -t
a b c
aaaaaaaaaa b c
a bbbbbbbbbb c
我到处寻找各种python库来执行此操作,但找不到任何有用的方法。
关注者
0
被浏览
44
1 个回答
-
data = [['a', 'b', 'c'], ['aaaaaaaaaa', 'b', 'c'], ['a', 'bbbbbbbbbb', 'c']] col_width = max(len(word) for row in data for word in row) + 2 # padding for row in data: print "".join(word.ljust(col_width) for word in row) a b c aaaaaaaaaa b c a bbbbbbbbbb c
这样做是计算最长的数据条目以确定列宽,然后
.ljust()
在打印出每一列时用于添加必要的填充。