![](/img/trans.png)
[英]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.