Python的集合差异如何在内部工作?

4

最近,我在研究一些Python模块,以了解它们的行为和实现的优化程度。请问有谁能告诉我Python使用哪种算法来执行集合差异操作?实现集合差异的一种可能方法是使用哈希表,这将涉及额外的N空间。我尝试查找集合操作的源代码,但我找不到代码位置。请帮忙。


3
以下是需要翻译的内容:http://hg.python.org/cpython/file/a6e6efa2f4dd/Objects/setobject.c#l1589请问是否需要将这段代码翻译成中文? - Ecir Hana
1个回答

3
在Python中,集合本身就是一种哈希。因此,实现它的差异并不像你想象的那么难。从更高的层次上看,如何实现集合差异?遍历其中一个集合并将所有不在另一个序列中出现的元素添加到结果中。

这只是你个人的猜测还是你有这个声明的来源?我可以想到4种不同的方法来计算c = a.difference(b):1)c = {x for x in a if x not in b};2)c = {x for x in b if x not in a};3)c = copy(a); for x in b: c.remove(x);4)c = copy(b); for x in a: c.remove(x)。如果两个集合中有一个比另一个大得多,那么这些方法根本不等价。 - Stef

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接