Skip to content
This repository has been archived by the owner on Aug 26, 2024. It is now read-only.

Minor optimization for process.extract #85

Open
giampaolo opened this issue Jun 18, 2015 · 1 comment
Open

Minor optimization for process.extract #85

giampaolo opened this issue Jun 18, 2015 · 1 comment

Comments

@giampaolo
Copy link

diff --git a/fuzzywuzzy/process.py b/fuzzywuzzy/process.py
index f31dbe8..9fa4e97 100644
--- a/fuzzywuzzy/process.py
+++ b/fuzzywuzzy/process.py
@@ -96,6 +96,8 @@ def extract(query, choices, processor=None, scorer=None, limit=5):
         scorer = fuzz.WRatio

     sl = []
+    # localize variable access to minimize overhead
+    sl_append = sl.append

     try:
         # See if choices is a dictionary-like object.
@@ -108,7 +110,7 @@ def extract(query, choices, processor=None, scorer=None, limit=5):
         for choice in choices:
             processed = processor(choice)
             score = scorer(query, processed)
-            sl.append((choice, score))
+            sl_append((choice, score))

     sl.sort(key=lambda i: i[1], reverse=True)
     return sl[:limit]

This will save some CPU cycles in case the input choice has many elements.

@josegonzalez
Copy link
Contributor

Mind making a pr for this?

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants