Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    primarykey
    data
    text
    <p>To me this sounds like you want memoized functions so that when you call it with known arguments it will return the known response instead of redoing it ... this particular implementation comes from <a href="http://wiki.python.org/moin/PythonDecoratorLibrary#Memoize" rel="nofollow">http://wiki.python.org/moin/PythonDecoratorLibrary#Memoize</a></p> <p>while it may be slight overkill for this problem memoize is a very useful pattern to know</p> <pre><code>import collections import functools class memoized(object): '''Decorator. Caches a function's return value each time it is called. If called later with the same arguments, the cached value is returned (not reevaluated). ''' def __init__(self, func): self.func = func self.cache = {} def __call__(self, *args): if not isinstance(args, collections.Hashable): # uncacheable. a list, for instance. # better to not cache than blow up. return self.func(*args) if args in self.cache: return self.cache[args] else: value = self.func(*args) self.cache[args] = value return value def __repr__(self): '''Return the function's docstring.''' return self.func.__doc__ def __get__(self, obj, objtype): '''Support instance methods.''' return functools.partial(self.__call__, obj) @memoized def get_words(fname): return list(open(fname, 'r')) @memoized def filter(word_list): filtered_words = [] special_words = [line.strip() for line in get_words("special_words.txt")] for w in word_list: if not w in special_words filtered_words.append(w) return filtered_words </code></pre> <p>on a side note a neat trick is</p> <pre><code> print set(word_list).difference(special_words) </code></pre> <p>which should be much faster (assuming you dont care about lost duplicates)</p>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. VO
      singulars
      1. This table or related slice is empty.
    2. VO
      singulars
      1. This table or related slice is empty.
    3. VO
      singulars
      1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload