擅长:python、mysql、java
<p>这里有一个使用<i>生成器的想法:</p>
<pre><code>replaceVals = iter(['foo', 'bar'])
origStr = 'I went to the ? to get ?'
(' ').join(next(replaceVals) if i == '?' else i for i in origStr.split())
</code></pre>
<p><b>输出:</b></p>
^{pr2}$
<hr/>
<p>这样做的好处是<code>replaceVals</code>中的项数不必与<code>origStr</code>中要替换的项数匹配:</p>
<pre><code>replaceVals = iter(['foo', 'bar', 'other'])
origStr = 'I went to the ? to get ?'
(' ').join(next(replaceVals) if i == '?' else i for i in origStr.split())
#'I went to the foo to get bar'
</code></pre>
<p>但是,在这些情况下使用字符串格式会导致错误。在</p>