根据2D数组的值创建数组

时间:2017-12-01 19:16:12

标签: python arrays

令人困惑的标题,不知道如何制定自己。最后的例子可能会让人们更容易理解。

所以,我有一个数组A_Main1,其中每个元素是另一个数组,A_Elem0,A_Elem1 ...... A_ElemN

我想创建一个新数组,其中每个元素是A_Main1中每个数组A_ElemI的第一个元素

我以前见过这个代码但是不记得它是怎么做的。这是我的代码的一部分

latitudeInfo = [latitude1Info[], latitude2Info[]...latitudeNInfo[]]
#latitudeXInfo[0] = the actual latitude, latitudeXInfo[>0] are values in someway 
#connected to the latitude. So the 0th element of latitudeXInfo is always the latitude

我想在latitudeInfo中创建一个包含所有纬度的新数组

possibleLatitudes = []
possibleLatitudes.append(latitudeInfo[i][0] for i in latitudeInfo)

认为possibleLatitudes会在latitudeInfo中附加i:th列表的第0个元素,但这似乎不起作用。

2 个答案:

答案 0 :(得分:3)

您可以使用list-comprehension遍历latitudeInfo中的每个列表,并使用l[0]从该列表中获取第一个元素。

possibleLatitudes = [l[0] for l in latitudeInfo]

请注意,您实际上在这里使用lists,而不是 arrays。对于学习Python的人来说,这是一种常见的误解 - 特别是来自其他语言。基本上,在Python中使用arrays的唯一时间是使用numpy模块。使用方括号[]的所有其他内容通常为list

答案 1 :(得分:0)

您可以在python中使用map,如下所示。 https://docs.python.org/3/library/functions.html#map。它类似于Javascript,Ruby或任何其他语言的地图。

lambda是一个匿名函数,它返回指定的条件。 http://www.secnetix.de/olli/Python/lambda_functions.hawk

lats = list(map(lambda l: l[0], latitudeInfo))

示例

>>> k = [[1, 2], [3, 4], [5, 6]]
>>> list(map(lambda i: i[0], k))
[1, 3, 5]