使用窗体的Python多行对齐

2024-04-25 22:59:38 发布

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

背景:

当我做数据清理时,我想打印我的arg名称和它的值。不过,args的名称和值的长度各不相同。为清楚起见,我希望在每行中将arg的名称左对齐,将arg的值右对齐。你知道吗

例如,我希望得到如下结果:

输出:

Arg1               :           value1
Arg2222222222222222:           value2
Arg3               : value33333333333

当前方法:

假设我有3个参数和3个值。你知道吗

name_list = ['Arg1','Arg2222222222222222','Arg3']
value_list = ['value1', 'value2', 'value33333333333']

使用下面的代码,我可以打印清楚。你知道吗

代码:

name_list = ['Arg1','Arg2222222222222222','Arg3']
value_list = ['value1', 'value2', 'value33333333333']
padding1 = max(map(len, name_list))
padding2 = max(map(len, value_list))
print("padding1 = {}, padding2 = {}".format(padding1,padding2))
for num in range(len(name_list)):
    print('{0}: {1}'.format(name_list[num].ljust(padding1), value_list[num].rjust(padding2)))

输出:

padding1 = 19, padding2 = 16
Arg1               :           value1
Arg2222222222222222:           value2
Arg3               : value33333333333

问题:

我们能用更少的代码来达到同样的目的吗?或者,我们能做得更具体些吗?你知道吗

谢谢你们的帮助,伙计们!你知道吗

一些引证

String alignment when printing in python

python 3 string formatting (alignment)


Tags: 代码name名称lenvalueargarg3list
1条回答
网友
1楼 · 发布于 2024-04-25 22:59:38

不多,但如果使用fstrings,您可以

for name, value in zip(name_list, value_list):
    print(f'{name:<{padding1}}:{value:>{padding2}}')    #fstring version

<>分别用于左对齐和右对齐。你知道吗

输出将是

Arg1               :          value1
Arg2222222222222222:          value2
Arg3               :value33333333333

this。你知道吗

相关问题 更多 >