alex23 <wuwe...@gmail.com> wrote: > On Mar 20, 1:42 am, "Emanuele D'Arrigo" <man...@gmail.com> wrote: > > I just had a bit of a shiver for something I'm doing often in my code > > but that might be based on a wrong assumption on my part. Take the > > following code: > > > > pattern = "aPattern" > > > > compiledPatterns = [ ] > > compiledPatterns.append(re.compile(pattern)) > > > > if(re.compile(pattern) in compiledPatterns): > > print("The compiled pattern is stored.") > > Others have discussed the problem with relying on the compiled RE > objects being the same, but one option may be to use a dict instead of > a list and matching on the pattern string itself: > > compiledPatterns = { } > if pattern not in compiledPatterns: > compiledPatterns[pattern] = re.compile(pattern) > else: > print("The compiled pattern is stored.")
FYI this is almost exactly the approach the re module takes to caching the expressions. (The difference is re adds a type token to the front of the key.) -- R. David Murray http://www.bitdance.com -- http://mail.python.org/mailman/listinfo/python-list