回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>我有3个列表,我正在以一种特定的方式组合(使用izip)。然后我对元组的组合列表执行计算。但是,一旦计算完成,我需要“撤消”此操作以恢复原始列表(尽管有些值已更改)。有没有一个简单的Python方法?你知道吗</p>
<pre><code>grouped = []
med_done = 0
lrg_done = 0
#While items exist in small, pair up one item from each list
grouped.extend(list(izip(sml,med,lrg)))
done = len(sml)
# While items remain in med, pair up one from med an two from lrg
grouped.extend(list(izip(med[done:],lrg[done::2],lrg[(done+1)::2])))
done = done + (2*(len(med)-len(sml)))
# Finish pairing up remaining items from lrg
grouped.extend(list(izip_longest(lrg[done::3],lrg[(done+1)::3],lrg[(done+2)::3],fillvalue = '-')))
</code></pre>
<p>这将产生:</p>
<pre><code>smlBinary:[6 6 7 7 7 8 6 8 7]
medBinary:[4 3 4 3 3 3 5 5 4 5 3 5 3 3 4 4]
lrgBinary:[0 1 2 0 0 2 1 1 1 1 1 2 2 2 0 2 2 1 2 1 2 1 0 1 2 1 0 2 1 2 0 1 0 1 0 1]
Grouped[(6, 4, 0), (6, 3, 1), (7, 4, 2), (7, 3, 0), (7, 3, 0), (8, 3, 2), (6, 5, 1), (8, 5, 1), (7, 4, 1), (5, 0, 1), (3, 2, 0), (5, 0, 2), (3, 1, 1), (3, 1, 1), (4, 1, 2), (4, 2, 2), (1, 2, 1), (0, 2, 1), (2, 0, 1), (0, 1, 0), (1, '-', '-')]
</code></pre>
<p>问题:
现在有没有一个类似的技术可以用来'解开'这些项目回到原来的名单?你知道吗</p>