用Python中的两个数组创建数组

时间:2021-09-02 12:54:13

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().

您好我想从两个数组创建一个数组,但我不想用append()或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.

这是一个简单的例子来理解,真正的一个有14个文件和35行和61个数组。


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))

当我使用merged = map(list,zip(listone,listtwo))

My result is [[[1, 2, 3], 4], [[1, 2, 3], 5], [[1, 2, 3], 6]] that is Bad

2 个解决方案

#1


5  

Use the builtin zip function. It's exactly what you want. From the python manuals:

使用内置的zip功能。这正是你想要的。从python手册:

>>> 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:

或者,如果你想要一个列表列表,而不是一个元组列表,你可以使用带有列表推导的zip:

>>> zipped = [list(t) for t in zip(x, y)]
>>> zipped
[[1, 4], [2, 5], [3, 6]]

#2


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.

zip(listone,listtwo)将返回元组列表。由于您需要列表列表,因此需要将每个元组转换为列表。 map(list,list_of_tuples)调用就是这样做的。

#1


5  

Use the builtin zip function. It's exactly what you want. From the python manuals:

使用内置的zip功能。这正是你想要的。从python手册:

>>> 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:

或者,如果你想要一个列表列表,而不是一个元组列表,你可以使用带有列表推导的zip:

>>> zipped = [list(t) for t in zip(x, y)]
>>> zipped
[[1, 4], [2, 5], [3, 6]]

#2


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.

zip(listone,listtwo)将返回元组列表。由于您需要列表列表,因此需要将每个元组转换为列表。 map(list,list_of_tuples)调用就是这样做的。