'的算法是什么集合交集()'在python中?

2024-04-27 18:11:20 发布

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

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

所以我需要找到集合交集(). 在

我比较了集合交集()和“for{for{}}”。集合交集()比另一个快(100倍)。所以使用'for{for{}}来随机选取一个元素不是一个明智的主意。在

背后的算法是什么集合交集()在python中?在


Tags: 方法目的算法元素for主意先求
1条回答
网友
1楼 · 发布于 2024-04-27 18:11:20

The algorithm如下:小集合被循环,每个元素都被复制,这取决于它是否在大集合中找到。所以,它相当于

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)。)

相关问题 更多 >