背景:
当我进行数据清理时,我想按行打印我的参数名称及其值。然而 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
问题:
我们可以使用更少的代码来实现相同的目标吗?或者,我们可以做得更具体吗?
谢谢你们的帮助,伙计们!
一些引用
最佳答案
不多,但如果使用 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 .
关于Python 多行对齐使用格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58953580/