#!/usr/bin/env python # coding: utf-8 # In[1]: get_ipython().run_line_magic('load_ext', 'autoreload') get_ipython().run_line_magic('autoreload', '2') # In[22]: from itertools import chain from utils import prof # In[9]: def perf(func, *args, **kwargs): return prof(func, locals(), globals(), *args, **kwargs) # In[52]: results = tuple((i, i + 10) for i in range (1000, 120000)) # In[53]: passage = list(range(500, 15000)) # In[94]: def highlights1(): hl = set() for r in results: for n in r: if n in passage: hl.add(n) return hl # In[95]: def highlights2(): passageSet = set(passage) hl = set() for r in results: for n in r: if n in passageSet: hl.add(n) return hl # In[96]: def highlights3(): passageSet = set(passage) resultSet = set(chain.from_iterable(results)) return resultSet & passageSet # In[97]: def highlights4(): passageSet = set(passage) return {n for n in chain.from_iterable(results) if n in passageSet} # In[98]: def highlights5(): passageSet = set(passage) resultSet = set(chain.from_iterable(results)) return passageSet & resultSet # In[99]: def highlights6(): return set(passage) & set(chain.from_iterable(results)) # In[100]: def highlights7(): hl = set(chain.from_iterable(results)) hl &= set(passage) return hl # In[101]: def highlights8(): hl = set(passage) hl &= set(chain.from_iterable(results)) return hl # In[60]: x = perf(highlights1) len(x) # In[104]: x = perf(highlights2) len(x) # In[111]: x = perf(highlights3) len(x) # In[114]: x = perf(highlights4) len(x) # In[123]: x = perf(highlights5) len(x) # In[127]: x = perf(highlights6) len(x) # In[136]: x = perf(highlights7) len(x) # In[ ]: # In[ ]: