问题
Hello 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?
This is a simple example to understand, real one has 14 files and 35 rows and the 61 Arrays.
For one dimensional the answer down is ok, but when you have array of list
listone = [[1,2,3],[1,2,3],[1,2,3]]
listtwo = [4,5,6]
I would like to get
result = [[1,2,3,4],[1,2,3,5],[1,2,3,6]]
when I work with merged = map(list, zip(listone, listtwo))
My result is [[[1, 2, 3], 4], [[1, 2, 3], 5], [[1, 2, 3], 6]] that is Bad
回答1:
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]]
回答2:
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.
来源:https://stackoverflow.com/questions/21260244/create-nested-list-from-two-lists-in-python