擅长:python、mysql、java
<p>可以使用列表理解来切换所需的值</p>
<pre><code>x = "abcd"
''.join(['d' if i == 'a' else 'a' if i == 'd' else i for i in x])
</code></pre>
<blockquote>
<p>'dbca'</p>
</blockquote>
<hr/>
<p>没有单子</p>
^{pr2}$
<blockquote>
<p>'dbca'</p>
</blockquote>
<hr/>
<h2>时机</h2>
<pre><code>In [1]: x = "abcd"*10000000
In [2]: %timeit ''.join('d' if i == 'a' else 'a' if i == 'd' else i for i in x)
5.78 s ± 152 ms per loop (mean ± std. dev. of 7 runs, 1 loop each)
In [3]: %timeit ''.join(['d' if i == 'a' else 'a' if i == 'd' else i for i in x])
4.49 s ± 157 ms per loop (mean ± std. dev. of 7 runs, 1 loop each)
</code></pre>
<p>事实证明,列表理解稍微快一点。在</p>