Skip to main content
 首页 » 编程设计

python之带列表的字符串格式化之字符串格式化的更多 Pythonic 解决方案

2025年05月04日13tuyile006

假设我有一串文本:

"""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) 

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

我正在尝试想出一种比在多个 if 条件下设置多个变量更 Pythonic 的字符串格式化方式

请您参考如下方法:

使用 .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