Python 多行对齐使用格式

标签 python string format alignment

背景:

当我进行数据清理时,我想按行打印我的参数名称及其值。然而 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)

最佳答案

不多,但如果使用 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/

相关文章:

python - 单个数据框的 Pandas 设置格式

c - 在C中没有指针的情况下在第二个字符串中查找第一个字符串

php - 纬度问题的格式文本框

python3打印格式输出

c++ - 使用 double 值的货币格式

python - Pycharm环境不同于命令行

python - 如何在opengl中制作坐标Y的动画

python - 如何将 torch 张量转换为 Pandas 数据帧?

java - 创建一个包含 n 个字符的字符串

r - 从不规则间隔的 pdf 中提取字符串到整洁的 R 数据帧中