我有一个经纬度数组,格式如下:
coord = [[lat1,long2],[lat2,long2],...,[latn,longn]]
我希望能够将它们从度数转换为弧度,并创建两个数组,一个包含经度,一个包含纬度。为了做到这一点,我想使用map函数来避免for循环,我想要做类似于以下的操作:
lat_ = map(radians,coords[_][0])
_是变化的索引。
我有一个经纬度数组,格式如下:
coord = [[lat1,long2],[lat2,long2],...,[latn,longn]]
我希望能够将它们从度数转换为弧度,并创建两个数组,一个包含经度,一个包含纬度。为了做到这一点,我想使用map函数来避免for循环,我想要做类似于以下的操作:
lat_ = map(radians,coords[_][0])
_是变化的索引。
虽然我通常会像Karl的答案一样使用列表推导,但你特别问到如何使用map来实现。简单的方法是使用lambda:
lat_ = map(lambda i:radians(i[0]), l)
lon_ = map(lambda i:radians(i[1]), l)
map
来给出直接的解决方案,但是我想提到lambda
可能更礼貌一些。 :) - Karl Knechtel通常在Python中,我们使用列表推导式来实现这个:
lats = [radians(coord[0]) for coord in coords]
longs = [radians(coord[1]) for coord in coords]
map
语言,您需要一个封装radians(coord[0])
操作的函数。zip
可以做到这一点(zip(*coords)
,因为每个被一起压缩的列表都是函数的参数)。map
和zip
都将返回生成器,您需要显式转换它们才能获得实际的列表(例如list(map(...))
)。