6

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?

1
  • 1
    Please don't use the term array when you have a list. Commented Jan 21, 2014 at 14:12

2 Answers 2

7

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]]
Sign up to request clarification or add additional context in comments.

8 Comments

Thank you!! I check it. I can not put +1 because not have 15. But more thanks
Glad to help. Even if you can't vote up, you can always accept whichever answer worked for you by clicking the check mark near the score. You get a couple of reputation points for accepting an answer as well, and it encourages people to answer your questions in the future.
Nigel also has another answer below which should work. It uses map instead of list comprehensions. If it matters, you can test to see which is faster.
For what it's worth, I did a very quick test, and using the list comprehension is every so slightly faster than using map. Running each example ten million times, it took not quite one second longer to do it with map (about 5% longer).
With two dimensions elements one = [[1,4],[2,5],[3,6]] and two = [[2,5],[6,7],[6,7]] Outcome we expect: result =[[1,4,2,5],[2,5,6,7],[3,6,6,7]] it is the same?
|
3

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.

1 Comment

It returns a map object in Python 3.9, must be converted to list with a list(map...)

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.