Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Interleave multiple lists of the same length in Python

Tags:

python

list

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].

like image 341
NPE Avatar asked Oct 30 '11 18:10

NPE


People also ask

How do I make two lists the same length in python?

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.


1 Answers

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] 
like image 101
NPE Avatar answered Sep 28 '22 08:09

NPE