擅长:python、mysql、java
<p>如果要避免使用压缩两个列表,我的方法是在<code>try</code>/<code>except</code>子句中追加两个列表中的值,并在迭代时追加定义为迭代器的<code>list_2</code>(或<code>list_1</code>中最短的)中的值,以这种方式避免必须<code>zip</code>两个列表:</p>
<pre><code># iterate over the longest list. Define other as iterator
l2 = iter(list_2)
out = [[] for _ in range(len(list_1))]
for ix, i in enumerate(list_1):
try:
out[ix].append(i)
out[ix].append(next(l2))
except StopIteration:
break
</code></pre>
<p>提供:</p>
<pre><code>print(out)
[[['ele1'], ['ele4']], [['ele_2'], ['ele_5']], [['ele_3']]]
</code></pre>