在Python中对齐字符串组合

时间:2014-03-29 10:37:43

标签: python format alignment

我知道在Python中,要将字符串对齐在一定宽度内,可以使用格式字符串。例如,以下代码打印中心字符串'Readability counts',宽度为30个空格:

print "{0: ^30}".format("Readability counts")

现在我想将字符串“2 + 4”居中,但我想用同一个对象的两个属性(obj.atr1obj.atr2)构建它。

我可以先将两个值组合起来形成一个字符串(使用连接或格式化)然后将其传递给下一个格式字符串,但我想知道是否有更优雅的方法来处理这个问题。最好,我只使用一个格式操作,因为这样我就可以将obj作为参数传递,并使用格式字符串获取属性。以下内容......

print "{0.atr1} + {0.atr2}".format(obj)

..但随后加入了居中。

当我做这样的事情时,我知道它有效..

print "{0: ^30}".format("{0.atr1} + {0.atr2}".format(obj))

..如果我想在最左边的格式字符串中使用obj的其他属性,那就太不方便了。

1 个答案:

答案 0 :(得分:0)

您的最后一种方法似乎很明智,您仍然可以使用其他obj属性再次传递它:

print "{0: ^30} | {1.atr3}".format("{0.atr1} + {0.atr2}".format(obj), obj)