diff options
| author | Raymond Hettinger <python@rcn.com> | 2004-06-13 09:57:33 +0000 |
|---|---|---|
| committer | Raymond Hettinger <python@rcn.com> | 2004-06-13 09:57:33 +0000 |
| commit | ca6cd58b9f6a1ae1fcb9637e64cbac1cfb0b0204 (patch) | |
| tree | ef538397a10032ab6b5cc5e2e2df90d3c2ba622e /Lib/difflib.py | |
| parent | 664d63486a143bb36de9ce330b6410291a2cd6d8 (diff) | |
| download | cpython-ca6cd58b9f6a1ae1fcb9637e64cbac1cfb0b0204.tar.gz | |
Apply heapq.nlargest() to find best matches.
Diffstat (limited to 'Lib/difflib.py')
| -rw-r--r-- | Lib/difflib.py | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/Lib/difflib.py b/Lib/difflib.py index c074b19065..85a1c9cb70 100644 --- a/Lib/difflib.py +++ b/Lib/difflib.py @@ -29,6 +29,8 @@ __all__ = ['get_close_matches', 'ndiff', 'restore', 'SequenceMatcher', 'Differ','IS_CHARACTER_JUNK', 'IS_LINE_JUNK', 'context_diff', 'unified_diff'] +import heapq + def _calculate_ratio(matches, length): if length: return 2.0 * matches / length @@ -703,9 +705,9 @@ def get_close_matches(word, possibilities, n=3, cutoff=0.6): result.append((s.ratio(), x)) # Move the best scorers to head of list - result.sort(reverse=True) + result = heapq.nlargest(result, n) # Strip scores for the best n matches - return [x for score, x in result[:n]] + return [x for score, x in result] def _count_leading(line, ch): """ |
