[Python-checkins] python/dist/src/Lib sets.py,1.37,1.38
rhettinger@users.sourceforge.net
rhettinger@users.sourceforge.net
Sun, 02 Feb 2003 06:27:21 -0800
Update of /cvsroot/python/python/dist/src/Lib
In directory sc8-pr-cvs1:/tmp/cvs-serv25238
Modified Files:
sets.py
Log Message:
SF patch #678899: Save time and memory by using itertools in sets module.
Index: sets.py
===================================================================
RCS file: /cvsroot/python/python/dist/src/Lib/sets.py,v
retrieving revision 1.37
retrieving revision 1.38
diff -C2 -d -r1.37 -r1.38
*** sets.py 14 Jan 2003 16:40:06 -0000 1.37
--- sets.py 2 Feb 2003 14:27:19 -0000 1.38
***************
*** 58,62 ****
__all__ = ['BaseSet', 'Set', 'ImmutableSet']
!
class BaseSet(object):
--- 58,62 ----
__all__ = ['BaseSet', 'Set', 'ImmutableSet']
! from itertools import ifilter
class BaseSet(object):
***************
*** 183,187 ****
else:
little, big = other, self
! common = filter(big._data.has_key, little._data)
return self.__class__(common)
--- 183,187 ----
else:
little, big = other, self
! common = ifilter(big._data.has_key, little)
return self.__class__(common)
***************
*** 205,214 ****
selfdata = self._data
otherdata = other._data
! for elt in selfdata:
! if elt not in otherdata:
! data[elt] = value
! for elt in otherdata:
! if elt not in selfdata:
! data[elt] = value
return result
--- 205,212 ----
selfdata = self._data
otherdata = other._data
! for elt in ifilter(otherdata.has_key, selfdata, True):
! data[elt] = value
! for elt in ifilter(selfdata.has_key, otherdata, True):
! data[elt] = value
return result
***************
*** 229,237 ****
result = self.__class__()
data = result._data
- otherdata = other._data
value = True
! for elt in self:
! if elt not in otherdata:
! data[elt] = value
return result
--- 227,233 ----
result = self.__class__()
data = result._data
value = True
! for elt in ifilter(other._data.has_key, self, True):
! data[elt] = value
return result
***************
*** 265,272 ****
if len(self) > len(other): # Fast check for obvious cases
return False
! otherdata = other._data
! for elt in self:
! if elt not in otherdata:
! return False
return True
--- 261,266 ----
if len(self) > len(other): # Fast check for obvious cases
return False
! for elt in ifilter(other._data.has_key, self, True):
! return False
return True
***************
*** 276,282 ****
if len(self) < len(other): # Fast check for obvious cases
return False
! selfdata = self._data
! for elt in other:
! if elt not in selfdata:
return False
return True
--- 270,274 ----
if len(self) < len(other): # Fast check for obvious cases
return False
! for elt in ifilter(self._data.has_key, other, True):
return False
return True