Reputation: 403
I would like to create an Array from two Arrays but I do not want to create this new Array, with append() or extend().
Input arrays have the same number of rows and columns:
listone = [1,2,3]
listtwo = [4,5,6]
Outcome we expect:
mergedlist = [[1,4],[2,5],[3,6]]
It can't be done via
mergedlist = listone.append(listtwo) or mergedlist = listone.extend(listtwo)
I would like to get
mergedlist = [[1,4],[2,5],[3,6]]
How can I get the desired output?
Upvotes: 6
Views: 12222
Reputation: 9967
Use the builtin zip
function. It's exactly what you want. From the python manuals:
>>> x = [1, 2, 3]
>>> y = [4, 5, 6]
>>> zipped = zip(x, y)
>>> zipped
[(1, 4), (2, 5), (3, 6)]
Or if you want a list of lists, instead of a list of tuples, you use zip
with a list comprehension:
>>> zipped = [list(t) for t in zip(x, y)]
>>> zipped
[[1, 4], [2, 5], [3, 6]]
Upvotes: 7
Reputation: 11524
Try:
listone = [1,2,3]
listtwo = [4,5,6]
merged = map(list, zip(listone, listtwo))
zip(listone, listtwo)
will return a list of tuples. Since you want a list of lists you need to convert each tuple to a list. map(list, list_of_tuples)
call will do exactly that.
Upvotes: 3