使用列表进行字符串格式化 - 更多Pythonic解决方案到字符串格式

时间:2012-05-30 20:49:22

标签: python string

所以我想说我有一串文字:

"""Blah blah blah %s. And also blah blah blah %s. Oh! One more thing, blah blah blah %s!!!"""

值列表:

values = ['foo', 'bar', 'baz', ...]

现在,我有几个变量(在我的情况下,类似于7,但我可以将其减少到3或4)并且我想将它们全部插入到此处,但是,有五个条件可以导致对于变量的不同值(以及一些输入),所以我想做的是取一个列表,然后将其弹出。通常我会这样做:

"""Blah blah blah %s. And also blah blah blah %s. Oh! One more thing, blah blah blah %s!!!""" % (VariableA, VariableB, VariableC)

是否有可能以相对简单的方式使用值列表?

我正在尝试使用更多Pythonic方式进行字符串格式化,而不是在多个条件下设置多个变量

2 个答案:

答案 0 :(得分:8)

使用.format(),您可以展开列表,使其值为函数的参数:

>>> vars = [1, 2, 3, 4]
>>> print '{} {} {} {}'.format(*vars)
1 2 3 4

正如@TryPyPy指出的那样,使用旧式字符串格式的等效语法将是:

>>> vars = [1, 2, 3, 4]
>>> print '%s %s %s %s' % tuple(vars)
1 2 3 4

答案 1 :(得分:0)

另外不要忘记python模板:

d = {'foo':"F.O.O", 'bar':'BAR'}
Template('$foo and $bar').substitute(d)

给出:

'F.O.O and BAR'