def __init__(self, pattern, words=[], map={}):
self.pattern = pattern<EOL>self.words = words<EOL>self._map1 = dict() <EOL>self._map2 = dict() <EOL>for w in self.words:<EOL><INDENT>self._map1[w.index] = map[w.index]<EOL><DEDENT>for k,v in self._map1.items():<EOL><INDENT>self._map2.setdefault(self.pattern.sequence.index(v),[]).append(k)<EOL><DEDENT>for k,v in self._map2.items():<EOL><INDENT>v.sort()<EOL><DEDENT>
Search result returned from Pattern.match(sentence),
            containing a sequence of Word objects.