2024-10-06 14:04:59 发布
网友
在另一个2元组列表中查找匹配的2元组的最快方法是什么?在
以下代码看起来效率极低。 loc1和loc2是(x,y)坐标元组的列表。在
loc3=[] for loc in loc1: if loc in loc2: loc3.append(loc)
我认为散列是关键,但不确定如何在Python上实现。 请教我一个优雅的密码。 谢谢。在
您可以使用集合和intersection:
intersection
loc3 = set(loc1).intersection(loc2)
{red是一个不可执行的hash2}(这是不可执行的)。如果这是个问题,看看菲尔·弗罗斯特的另一个答案。然而,在不需要顺序和重复的情况下,这应该是非常有效的。在
保序解决方案可以包含重复项,但需要项的哈希性(在loc2)如下:
loc2
在python中,set只是一个哈希表。检查某个项是否包含在该集合中是一个(大约)O(1)操作,因为该项的位置是通过散列找到的。在
set
您可以使用集合和
intersection
:{red是一个不可执行的hash2}(这是不可执行的)。如果这是个问题,看看菲尔·弗罗斯特的另一个答案。然而,在不需要顺序和重复的情况下,这应该是非常有效的。在
保序解决方案可以包含重复项,但需要项的哈希性(在
^{pr2}$loc2
)如下:在python中,
set
只是一个哈希表。检查某个项是否包含在该集合中是一个(大约)O(1)操作,因为该项的位置是通过散列找到的。在相关问题 更多 >
编程相关推荐