擅长:python、mysql、java
<p>可以使用<code>itertools.izip_longest</code>with和空字符串作为<code>fillvalue</code>关键字参数,然后对返回值进行处理,直到它成为所需的字符串。你知道吗</p>
<p>以下是<code>izip_longest</code>产生的输出(我将结果列成一个列表,以便可读):</p>
<pre><code>>>> from itertools import izip_longest
>>> s1 = 'home'
>>> s2 = 'sweet'
>>> list(izip_longest(s1, s2, fillvalue=''))
[('h', 's'), ('o', 'w'), ('m', 'e'), ('e', 'e'), ('', 't')]
</code></pre>
<p>现在您只需连接所有字符串(长度为1或0)。一个解决办法是</p>
<pre><code>>>> ''.join(sum(izip_longest(s1, s2, fillvalue=''), ()))
'hsowmeeet'
</code></pre>
<p>或者,只需使用常规的<code>for</code>循环:</p>
<pre><code>>>> result = ''
>>> for x,y in izip_longest(s1, s2, fillvalue=''):
... result += x + y
...
>>> result
'hsowmeeet'
</code></pre>