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