[Python-Dev] Re: string find(substring) vs. substring in string
fredrik at pythonware.com
Wed Feb 16 22:23:03 CET 2005
Mike Brown wrote:
>> any special reason why "in" is faster if the substring is found, but
>> a lot slower if it's not in there?
> Just guessing here, but in general I would think that it would stop searching
> as soon as it found it, whereas until then, it keeps looking, which takes more
the point was that string.find does the same thing, but is much faster in
the "no match" case.
> But I would also hope that it would be smart enough to know that it
> doesn't need to look past the 2nd character in 'not the xyz' when it is
> searching for 'not there' (due to the lengths of the sequences).
note that the target string was "not the xyz"*100, so the search algorithm
surely has to look past the second character ;-)
(btw, the benchmark was taken from jim hugunin's ironpython talk, and
seems to be carefully designed to kill performance also for more advanced
algorithms -- including boyer-moore)
More information about the Python-Dev