kj wrote:
In <h0e9q8$ni...@reader1.panix.com> kj <no.em...@please.post> writes:

In <023a8d04$0$20636$c3e8...@news.astraweb.com> Steven D'Aprano 
<st...@remove-this-cybersource.com.au> writes:

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

In <h0e0oi$1es...@adenine.netfront.net> "tsangpo"
<tsangpo.newsgr...@gmail.com> 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