mirror of
https://github.com/python/cpython.git
synced 2025-10-07 23:51:16 +00:00
This commit is contained in:
parent
f3b68b3f98
commit
74a7c67db1
2 changed files with 17 additions and 3 deletions
|
@ -358,6 +358,16 @@ The :class:`SequenceMatcher` class has this constructor:
|
||||||
.. versionadded:: 3.2
|
.. versionadded:: 3.2
|
||||||
The *autojunk* parameter.
|
The *autojunk* parameter.
|
||||||
|
|
||||||
|
SequenceMatcher objects get three data attributes: *bjunk* is the
|
||||||
|
set of elements of b for which *isjunk* is True; *bpopular* is the set of non-
|
||||||
|
junk elements considered popular by the heuristic (if it is not disabled);
|
||||||
|
*b2j* is a dict mapping the remaining elements of b to a list of positions where
|
||||||
|
they occur. All three are reset whenever *b* is reset with :meth:`set_seqs`
|
||||||
|
or :meth:`set_seq2`.
|
||||||
|
|
||||||
|
.. versionadded:: 3.2
|
||||||
|
The *bjunk* and *bpopular* attributes.
|
||||||
|
|
||||||
:class:`SequenceMatcher` objects have the following methods:
|
:class:`SequenceMatcher` objects have the following methods:
|
||||||
|
|
||||||
|
|
||||||
|
@ -538,7 +548,7 @@ different results due to differing levels of approximation, although
|
||||||
SequenceMatcher Examples
|
SequenceMatcher Examples
|
||||||
------------------------
|
------------------------
|
||||||
|
|
||||||
This example compares two strings, considering blanks to be "junk:"
|
This example compares two strings, considering blanks to be "junk":
|
||||||
|
|
||||||
>>> s = SequenceMatcher(lambda x: x == " ",
|
>>> s = SequenceMatcher(lambda x: x == " ",
|
||||||
... "private Thread currentThread;",
|
... "private Thread currentThread;",
|
||||||
|
|
|
@ -213,6 +213,10 @@ class SequenceMatcher:
|
||||||
# (at least 200 elements) and x accounts for more than 1 + 1% of
|
# (at least 200 elements) and x accounts for more than 1 + 1% of
|
||||||
# its elements (when autojunk is enabled).
|
# its elements (when autojunk is enabled).
|
||||||
# DOES NOT WORK for x in a!
|
# DOES NOT WORK for x in a!
|
||||||
|
# bjunk
|
||||||
|
# the items in b for which isjunk is True.
|
||||||
|
# bpopular
|
||||||
|
# nonjunk items in b treated as junk by the heuristic (if used).
|
||||||
|
|
||||||
self.isjunk = isjunk
|
self.isjunk = isjunk
|
||||||
self.a = self.b = None
|
self.a = self.b = None
|
||||||
|
@ -321,7 +325,7 @@ class SequenceMatcher:
|
||||||
indices.append(i)
|
indices.append(i)
|
||||||
|
|
||||||
# Purge junk elements
|
# Purge junk elements
|
||||||
junk = set()
|
self.bjunk = junk = set()
|
||||||
isjunk = self.isjunk
|
isjunk = self.isjunk
|
||||||
if isjunk:
|
if isjunk:
|
||||||
for elt in list(b2j.keys()): # using list() since b2j is modified
|
for elt in list(b2j.keys()): # using list() since b2j is modified
|
||||||
|
@ -330,7 +334,7 @@ class SequenceMatcher:
|
||||||
del b2j[elt]
|
del b2j[elt]
|
||||||
|
|
||||||
# Purge popular elements that are not junk
|
# Purge popular elements that are not junk
|
||||||
popular = set()
|
self.bpopular = popular = set()
|
||||||
n = len(b)
|
n = len(b)
|
||||||
if self.autojunk and n >= 200:
|
if self.autojunk and n >= 200:
|
||||||
ntest = n // 100 + 1
|
ntest = n // 100 + 1
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue