我是Python的新手。我有两本字典(A和B)。每个字典都有坐标信息,这意味着我有四个坐标列表(latA,longA,latB,longB)。我试图测量坐标表1中每个事件之间的距离,它来自字典A,相对于列表2中的每个事件(dict B)。然后我想创建一个新的字典,C,它只包括那些彼此接近的事件(小于1km等),还包括原始字典(a和B)中包含的所有其他信息。你知道吗
我能够计算所有距离并创建一个短距离列表。尽管如此,我不知道如何使用这个短距离列表并创建一个新的字典,其中包含我从字典a和B中需要的所有值
C = {}
dist_km=[]
for row in product(zip(latA, longA), zip(latB, longB)):
e=(list(chain(*row)))
distance= distance_function(e[0],e[1],e[2],e[3])
dist_kilo=(distance*6373)
dist_km.append(dist_kilo)
if dist_kilo<1.01:
C= dict([("clat", latA)])
C["clong"]= ("clong", longA)
C["tlat"]= ("tlat", latB)
C["tlong"]= ("tlong", longB)
我的想法是Python要创建一个字典,只使用那些短距离的观察值,但是这个代码不起作用。它基本上只是附加了四个列表(latA、longA、latB和longB),而不考虑dist_kilo的长度。你知道吗
有人知道我该怎么做吗?你知道吗
for row in product(zip(latA, longA), zip(latB, longB)):
((latA[i], longA[i]),(latB[i], longB[i]))
?你知道吗因此,如果要访问这些值,应该使用行[0][0]行[0][1],行[1][0],行[1][1],而不是latA,因为您在迭代器中。你知道吗
但是,看看这个,你需要返回一个字典列表,对吗?一个包含4个字典键值对的列表项?像这样的?你知道吗
代码通过
C= dict([("clat", latA)])
为每一组匹配的坐标创建一个新的dict,因此C
最多应该有四个键:“clat”、“clong:、“tlat”、“tlong”。您已经通过C = {}
在for
循环之前创建了字典。要在for
循环中添加条目,只需执行C[key] = value
您可能希望将匹配的坐标存储在元组列表中:(latA,longA,latB,longB)。或者,如果有其他信息要与每一组匹配的坐标相关联,请将匹配的元组用作dict中的键
相关问题 更多 >
编程相关推荐