所以我想说我有一串文字:
"""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方式进行字符串格式化,而不是在多个条件下设置多个变量
答案 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'