Python中“ set.intersection()”的算法是什么?

首先,我的目的是在两个已知集中随机获得一个元素。所以我的原始方法是首先将两个集合相交。然后从相交的集合中随机选取一个元素。但这是愚蠢的,因为我只需要一个元素,但需要一个相交的集合。

所以我需要找到set.intersection()的算法。

我比较了“ set.intersection()”和“ for {for

{}}”方法之间的成本时间。Set.intersection()比其他方法快100倍。因此,使用“ for {for

{}}”来随机选择一个元素不是一个明智的主意。

python set.intersection()背后的算法是什么?

回答:

算法如下:较小的集合被循环,并且根据是否在较大的集合中找到每个元素,将其复制。所以,这相当于C的

def intersect(a, b):

if len(a) > len(b):

a, b = b, a

c = set()

for x in a:

if x in b:

c.add(x)

return c

(或:return set(x for x in a if x in b)。)

以上是 Python中“ set.intersection()”的算法是什么? 的全部内容, 来源链接: utcz.com/qa/398001.html

回到顶部