簡體   English   中英

組合 2 個列表以在列表中創建一對坐標

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM