如何对字符串进行左、右和居中对齐

实际案例

某个字典存储了一系列属性值,

{
    "lodDist": 100.0,
    "SmallCull": 0.04,
    "DistCull": 500.0,
    "trilinear": 40,
    "farclip": 477
}

在程序中,我们想以如下工整的格式将其内容输出,如何处理?

 SmallCull : 0.04
 lodDist   : 100.0
 DistCull  : 500.0
 trilinear : 40
 farclip   : 477

解决方案:

  • 方法一:使用字符串的str.ljust(), str.rjust()和str.center()进行左、右和居中对齐
  • 方法二:使用format(),传递类似'<20', '>20', '^20'参数完成同样任务

两种方法的代码如下:

# -*- coding: utf-8 -*-

d = {
    "lodDist": 100.0,
    "SmallCull": 0.04,
    "DistCull": 500.0,
    "trilinear": 40,
    "farclip": 477
}

# 寻找字典中元素最大宽度
w = max(map(len, d.keys()))

# 方法一
print u"方法一:"
for k in d:
    print k.ljust(w), ":", d[k]

print "\n"

# 方法二
print u"方法二:"
for k in d:
    print format(k, "<" + str(w)), ":", d[k]

其输出结果为:

方法一:
SmallCull : 0.04
farclip   : 477
lodDist   : 100.0
DistCull  : 500.0
trilinear : 40


方法二:
SmallCull : 0.04
farclip   : 477
lodDist   : 100.0
DistCull  : 500.0
trilinear : 40

你可能感兴趣的:(如何对字符串进行左、右和居中对齐)