python:在lis中查找匹配的元组

2024-10-06 14:04:59 发布

您现在位置:Python中文网/ 问答频道 /正文

在另一个2元组列表中查找匹配的2元组的最快方法是什么?在

以下代码看起来效率极低。 loc1和loc2是(x,y)坐标元组的列表。在

loc3=[]
for loc in loc1:
    if loc in loc2:
        loc3.append(loc)

我认为散列是关键,但不确定如何在Python上实现。 请教我一个优雅的密码。 谢谢。在


Tags: 方法代码in密码列表forifloc
1条回答
网友
1楼 · 发布于 2024-10-06 14:04:59

您可以使用集合和intersection

loc3 = set(loc1).intersection(loc2)

{red是一个不可执行的hash2}(这是不可执行的)。如果这是个问题,看看菲尔·弗罗斯特的另一个答案。然而,在不需要顺序和重复的情况下,这应该是非常有效的。在

保序解决方案可以包含重复项,但需要项的哈希性(在loc2)如下:

^{pr2}$

在python中,set只是一个哈希表。检查某个项是否包含在该集合中是一个(大约)O(1)操作,因为该项的位置是通过散列找到的。在

相关问题 更多 >