In Python, is there a good way to interleave two lists of the same length?
Say I'm given [1,2,3]
and [10,20,30]
. I'd like to transform those into [1,10,2,20,3,30]
.
Method #1 : Using map() + list comprehension map() is used to handle the interleave of lists and the task of insertion at alternate is performed by the list comprehension part of the shorthand code. Only works in Python 2.
Having posted the question, I've realised that I can simply do the following:
[val for pair in zip(l1, l2) for val in pair]
where l1
and l2
are the two lists.
If there are N lists to interleave, then
lists = [l1, l2, ...] [val for tup in zip(*lists) for val in tup]
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With