【问题标题】:Write coordinates of array of values in multidimensional array在多维数组中写入值数组的坐标
【发布时间】:2018-06-12 14:09:50
【问题描述】:

我有这个清单:

list = [[0, 5], [0, 3, 6], [1, 2, 4], [1, 7], [0, 1]]

每个元素都指向一个点,其坐标被列为两个数组:

Lon = [2.0,3.0,5.0,2.0,6.0,1.0,3.0,4.0]
Lat = [4.0,6.0,5.0,3.0,4.0,2.0,1.0,7.0]

我正在尝试创建一个格式如下的数组:

[[Lon_0,Lat_0],[Lon_5,Lat_5]]
[[Lon_0,Lat_0],[Lon_3,Lat_3],[Lon_6,Lat_6]]
...

我尝试了 zip 功能,但缺少一些东西,我不知道如何前进:

for m in list:
    for n in m:
        Coord = zip((Lon[n], Lat[n]))

感谢任何帮助

【问题讨论】:

  • 您不需要 for 循环,只需 zip(Lon, Lat) 就可以了。
  • 试试zip(Lon, Lat)。要将其转换为列表,请使用:list(zip(Lon, Lat)).
  • 哦,需要注意的是,zip 会将“内部”列表变成一个元组。例如:[(Lon_0, Lat_0), (...), ... ].
  • 另外,考虑将“列表”从 list 重命名为其他名称,例如 lst。通过命名变量list,您将覆盖list 构造函数。因此,例如,@pask 之前的建议即使应该有效,也不会奏效。
  • 但是zip函数不可下标,如何调用列表中每个点的压缩坐标?

标签: python arrays python-3.x


【解决方案1】:

您可以遍历列表中每个元素内的每个索引,并使用 Lon, Lat 值重建一个条目。

代码如下:

# Sample data
list = [[0, 5], [0, 3, 6], [1, 2, 4], [1, 7], [0, 1]]
Lon = [2.0,3.0,5.0,2.0,6.0,1.0,3.0,4.0]
Lat = [4.0,6.0,5.0,3.0,4.0,2.0,1.0,7.0]

# Construct result list
result = []                                                                                                                          
for entry in list:
    elem = []
    for index in entry:
        elem.append([Lon[index], Lat[index]])
    result.append(elem)

# Sample output
print(result)
[[[2.0, 4.0], [1.0, 2.0]], 
 [[2.0, 4.0], [2.0, 3.0], [3.0, 1.0]], 
 [[3.0, 6.0], [5.0, 5.0], [6.0, 4.0]], 
 [[3.0, 6.0], [4.0, 7.0]], 
 [[2.0, 4.0], [3.0, 6.0]]]

以更“pythonic”的方式,您可以使用单行命令(这可能更难理解,但作用完全相同):

result = [[[Lon[index], Lat[index]] for index in entry] for entry in list]

【讨论】:

【解决方案2】:

我猜你需要这样的东西:

[[[Lon[i], Lat[i]] for i in sub] for sub in mylist]
#[[[2.0, 4.0], [1.0, 2.0]],
# [[2.0, 4.0], [2.0, 3.0], [3.0, 1.0]],
# [[3.0, 6.0], [5.0, 5.0], [6.0, 4.0]],
# [[3.0, 6.0], [4.0, 7.0]],
# [[2.0, 4.0], [3.0, 6.0]]]

【讨论】:

    猜你喜欢
    • 2017-03-16
    • 2013-12-14
    • 1970-01-01
    • 2021-05-03
    • 2022-01-16
    • 1970-01-01
    • 2016-08-31
    • 2018-09-20
    • 2021-05-22
    相关资源
    最近更新 更多