Mercurial > cpython-lru_cache-weakref
diff Lib/difflib.py @ 66931:9a2e56d1146d
Issue 10534, difflib: tweak doc; test new SequenceMatcher instance attributes; avoid unneeded lists of SM.b2j keys and items in .__chain_b. Do not backport.
| author | Terry Reedy <tjreedy@udel.edu> |
|---|---|
| date | Wed, 15 Dec 2010 20:18:10 +0000 |
| parents | 6b03491ee171 |
| children | dc245d681901 |
line wrap: on
line diff
--- a/Lib/difflib.py Wed Dec 15 19:47:37 2010 +0000 +++ b/Lib/difflib.py Wed Dec 15 20:18:10 2010 +0000 @@ -320,20 +320,22 @@ self.bjunk = junk = set() isjunk = self.isjunk if isjunk: - for elt in list(b2j.keys()): # using list() since b2j is modified + for elt in b2j.keys(): if isjunk(elt): junk.add(elt) - del b2j[elt] + for elt in junk: # separate loop avoids separate list of keys + del b2j[elt] # Purge popular elements that are not junk self.bpopular = popular = set() n = len(b) if self.autojunk and n >= 200: ntest = n // 100 + 1 - for elt, idxs in list(b2j.items()): + for elt, idxs in b2j.items(): if len(idxs) > ntest: popular.add(elt) - del b2j[elt] + for elt in popular: # ditto; as fast for 1% deletion + del b2j[elt] def isbjunk(self, item): "Deprecated; use 'item in SequenceMatcher().bjunk'."
