I prefer to focus on "clearer" and "less error-prone" rather than "faster" in most cases.
I do agree it's a minor embarrassment that s.startswith(t) is slower than s[:len(t)]==t; but I think we should make startswith() faster rather than recommending the other idiom.
(Also, for longer substrings startswith wins -- but admittedly rather long, like 300 chracters.)
On 8/25/06, Fredrik Lundh email@example.com wrote:
Guido van Rossum wrote:
(*) I found an example of code testing "if string.find(s, t) != 0", thinking it was a bug attempting to write "if t in s", but which Vinay identified as a 1.5.2 idiom for "if not s.startswith(t)"...
and as noted on the py3k list, not a very good one, given that the usual way to write that under 1.5.2 is a lot faster (*).
*) even faster than "startswith", in many cases.
Python-Dev mailing list Python-Dev@python.org http://mail.python.org/mailman/listinfo/python-dev Unsubscribe: http://mail.python.org/mailman/options/python-dev/guido%40python.org