kj wrote:
In <[email protected]> kj <[email protected]> writes:

In <[email protected]> Steven D'Aprano 
<[email protected]> writes:

On Sat, 06 Jun 2009 15:59:37 +0000, kj wrote:

In <[email protected]> "tsangpo"
<[email protected]> writes:

I want to ensure that the url ends with a '/', now I have to do thisa
like below.
url = url + '' if url[-1] == '/' else '/'
Is there a better way?
It's a pity that in python regexes are an "extra", as it were. Otherwise
I'd propose:

url = re.sub("/?$", "/", url)


Thank goodness regexs are an "extra" in Python, because it discourages noobs from pulling out the 80 pound sledgehammer of the regex engine to crack the peanut of a test-and-concatenate:

I was just responding to the OP's subject line.  Whatever else one
may say about my proposal, it *is* shorter.

But thanks for the tip with timeit.  That looks like a good module
to know.



And actually, if speed is the criterion, then one should also avoid endswith:

from timeit import Timer
min(Timer("if s[-1] != '/': s += '/'", "s = 'abcd/efgh'").repeat())
0.18654584884643555
min(Timer("if not s.endswith('/'): s += '/'", "s = 'abcd/efgh'").repeat())
0.43395113945007324

If there's any chance that the string could be empty (len(s) == 0) then
use:

    if s[-1 : ] != '/'
        s += '/'
--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to