我有两组数据,A和B,我试图在它们之间创建匹配。集合A中的值对应于人员的位置,集合B中的值对应于城市的位置。此处的位置由10位数的geohash字符串表示。
我想制作一个快速循环,对于集合A中的每个人,将一个城市与集合B相关联。我发现通过将A和B作为列表并使用for循环,这很容易做到。然而,for循环的O(n)效率是不希望的。我对这个问题的第二次尝试是使用词典获得O(1)时间。我想做这样的事情:
for z in A.keys():
for x in range(0,10):
try:
match_list.append([z,B[z[:-x]]) --this partial string lookup is not supported with dictionaries.
except blahblahblah:
.....
对于那些没有geohash背景的人:截断geohash字符串就像是“缩小”或修剪lat,long对的小数。
我查看了this stackoverflow帖子,了解涉及itertools的实现,但是我太缺乏经验,无法理解如何在这种情况下使用它们。
另外,我已经考虑过为每个哈希长度制作多个词典,但这是有问题的,因为制作这些词典需要大量的前期计算成本。
如果有人有办法实现我的想法,或想要实现可以实现我的目标的快速数据结构,请告诉我!谢谢你的帮助。