擅长:python、mysql、java
<h2>从itertools recipes</h2>
<p><a href="https://docs.python.org/3/library/itertools.html#itertools-recipes" rel="noreferrer">itertool recipes</a>建议了一个名为<code>roundrobin</code>的解决方案,它允许不同长度的列表。在</p>
<pre><code>from itertools import cycle, islice
def roundrobin(*iterables):
"roundrobin('ABC', 'D', 'EF') --> A D E B F C"
# Recipe credited to George Sakkis
num_active = len(iterables)
nexts = cycle(iter(it).__next__ for it in iterables)
while num_active:
try:
for next in nexts:
yield next()
except StopIteration:
# Remove the iterator we just exhausted from the cycle.
num_active -= 1
nexts = cycle(islice(nexts, num_active))
print(*roundrobin(*lists)) # a 1 w 5 b 2 x 6 c 3 y 7 d 4 z 8
</code></pre>
<h2>有切片吗</h2>
<p>或者,这里有一个完全依赖切片的解决方案,但是要求所有列表的长度相等。在</p>
^{pr2}$