<p>我正在寻找一种更python的方法,用列表中的值替换字符串中已知长度的占位符。应按顺序更换,且只能使用一次。例如,使用以下值:</p>
<pre><code>replaceVals = ['foo', 'bar']
origStr = 'I went to the ? to get ?'
</code></pre>
<p>我希望得到:</p>
^{pr2}$
<p>我可以通过下面的循环获得所需的结果,但我觉得应该有一个更好的方法来实现这一点,而不是使用这样的循环。在</p>
<pre><code>for i in range(len(replaceVals)):
origStr = origStr.replace('?', replaceVals[i], 1)
</code></pre>
<p>可以使用字符串的<code>replace</code>和<code>format</code>方法,如下所示:</p>
<pre><code>origStr.replace('?','{}').format(*replaceVals)
Out[334]: 'I went to the foo to get bar'
</code></pre>