[英]How to iterate over a list of list of lists of lists of lists… of list of pair of coordinates in python?
[英]Combine 2 lists to make a pair of coordinates in a list
我需要组合两个列表(经度/纬度)中的值,以获得一个组合列表(不是元组或字符串格式) 我的简单 for 循环没有正确迭代第一个列表,它使用一个值来匹配所有值第二个列表,在移动到下一个值之前。
for a in location1:
for b in location2:
location3.append(a+b)
location3
我得到了这个(一个'a'匹配所有'b'的第一个):
[[41.7770923949, -87.6060037796],
[41.7770923949, -87.6547753762],
[41.7770923949, -87.5716351762],
我希望这在两个列表中匹配相同的序列:
[41.7770923949, -87.6060037796],
[41.784575915, -87.6547753762],
此外,尝试使用 zip/map 进行如下操作:
list(map(lambda X: (X[0],X[1]), list(zip(location1,location2))))
给我这个不正确的形式(还有其他方法吗?):
[([41.7770923949], [-87.6060037796]),
([41.784575915], [-87.6547753762]),
您需要直接使用 zip 来遍历这两个列表,而不是使用您的 lambda。
l1 = [ 2, 4, 6, 8 ]
l2 = [ 1, 3, 5, 7 ]
coord = []
for a, b in zip( l1, l2 ):
coord.append( [ a, b ] )
print( coord )
顺便说一句,你的问题与这个有关。
您的代码中不需要第二个 for 。 我认为你的数据结构是这样的:
location1 = [[1], [2], [3]]
location2 = [[4], [5], [6]]
然后试试这个:
location3 = []
for i, _ in enumerate(location1):
location3.append(location1[i]+location2[i])
print(location3)
结果:
[[1, 4], [2, 5], [3, 6]]
您需要同时显示变量location1 and location 2
。 最终解决方案将取决于它。
案例1 :两个变量都是列表列表,然后下面的解决方案适合您。
location1 = [[1], [2], [3]]
location2 = [[4], [5], [6]]
location3 = list(map(lambda coord: [coord[0][0],coord[1][0]], zip(location1,location2)))
print(location3)
案例2 :两个变量的整数列表
location1 = [1, 2, 3]
location2 = [4, 5, 6]
location3 = list(map(lambda coord: list(coord), zip(location1,location2)))
print(location3)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.