From d33e6be59df8cd8ba701d744ffc2fc7e2d483daa Mon Sep 17 00:00:00 2001 From: Tim Peters Date: Sun, 25 Aug 2002 19:12:45 +0000 Subject: [PATCH] Sped intersection by large factors (3-5x faster than before on sets of cardinality 500; and the smaller the intersection, the bigger the speedup). --- Lib/sets.py | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/Lib/sets.py b/Lib/sets.py index 8808701d244..e88e845c1fd 100644 --- a/Lib/sets.py +++ b/Lib/sets.py @@ -176,13 +176,8 @@ class BaseSet(object): little, big = self, other else: little, big = other, self - result = self.__class__() - data = result._data - value = True - for elt in little: - if elt in big: - data[elt] = value - return result + common = filter(big._data.has_key, little._data.iterkeys()) + return self.__class__(common) def intersection(self, other): """Return the intersection of two sets as a new set.