如何对齐此列表中的每个单词?

2024-09-26 21:56:56 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个文件中的列表:

[ [ 'aaaaa', 'bbb','ccccccccc' ], [ 'aaaaa', 'bbbbbb','cccccc' ], [ 'aaa', 'bbb','ccccccccc' ] ]
aaaaa bbb ccccccccc
aaaaa bbbbbb cccccc
aaa bbb ccccccccc

我使用它进行一些分析,但由于单词的长度,很难阅读,我想将其格式设置为如下所示:

aaaaa  bbb     ccccccccc
aaaaa  bbbbbb  cccccc
aaa    bbb     ccccccccc

也许在柱子之间有一些宽敞的空间

我想我可以使用.format函数,但我试过了,没有找到解决方案

我只能使用Python 2.7


Tags: 文件函数format列表格式空间解决方案单词
2条回答

使用Python2.7进行测试:

lst = [ [ 'aaaaa', 'bbb','ccccccccc' ], [ 'aaaaa', 'bbbbbb','cccccc' ], [ 'aaa', 'bbb','ccccccccc' ] ]

widths = [max(len(j) for j in i) for i in zip(*lst)]
s = ''.join('{{:<{}}}'.format(w+2) for w in widths)

for v in lst:
    print(s.format(*v))

按此列内字符串的最大宽度+2个额外字符打印每列:

aaaaa  bbb     ccccccccc  
aaaaa  bbbbbb  cccccc     
aaa    bbb     ccccccccc  
my_list = [ [ 'aaaaa', 'bbb','ccccccccc' ], [ 'aaaaa', 'bbbbbb','cccccc' ], [ 'aaa', 'bbb','ccccccccc' ] ]

# max_lengths = [max(len(y) for y in x) for x in zip(*my_list)]
# Can do above and get max lengths for each a, b, c etc but let us just get one global max for a neater solution

max_length = max(max(inner_list) for inner_list in my_list)

with open(target, "w") as writer:
   for inner_list in my_list:
       l_justed = [x.ljust(max_length) for x in inner_list)
       writer.writeline("    ".join(l_justed))

l仅在末尾添加空格,使字符串长度成为指定值

相关问题 更多 >

    热门问题