On 2019-04-02 19:10, Stephen J. Turnbull wrote:
Anders Hovmöller writes:

  > Removing "file:" prefix:
  > 
https://github.com/merijn/dotfiles/blob/43c736c73c5eda413dc7b4615bb679bd43a18d1a/dotfiles/hg-data/hooks/bitbucket.py#L16
 
<https://github.com/merijn/dotfiles/blob/43c736c73c5eda413dc7b4615bb679bd43a18d1a/dotfiles/hg-data/hooks/bitbucket.py#L16>

This is interesting, because it shows the (so far standard) one-liner:

     word[len(prefix):] if word.startswith(prefix) else word

can be improved (?!) to

     word[len(prefix) if word.startswith(prefix) else 0:]

It could be 'improved' more to:

    word[word.startswith(prefix) and len(prefix) : ]

I don't know if this is more readable, but I think it's less so.

Note that version 1 doesn't copy word if it doesn't start with prefix,
while version 2 does.  In many applications I can think of the results
would be accumulated in a set, and version 1 equality tests will also
be faster in the frequent case that the word doesn't start with the
prefix.  So that's the one I'd go with, as I can't think of any
applications where multiple copies of the same string would be useful.

_Neither_ version copies if the word doesn't start with the prefix. If you won't believe me, test them! :-)
_______________________________________________
Python-ideas mailing list
[email protected]
https://mail.python.org/mailman/listinfo/python-ideas
Code of Conduct: http://python.org/psf/codeofconduct/

Reply via email to