【问题标题】:Aligning a combination of strings in Python在 Python 中对齐字符串组合
【发布时间】:2014-05-08 22:11:11
【问题描述】:

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

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

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

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

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

.. 但随后添加了居中。

我知道当我做这样的事情时它会起作用..

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

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

【问题讨论】:

    标签: python format alignment


    【解决方案1】:

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

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

    【讨论】:

    • 很公平,我就这样吧。
    猜你喜欢
    • 2016-03-28
    • 2020-12-03
    • 2015-02-03
    • 1970-01-01
    • 2013-03-25
    • 2016-10-22
    • 1970-01-01
    • 2016-05-11
    • 2015-11-05
    相关资源
    最近更新 更多