can it be shorter?
Aaron Brady
castironpi at gmail.com
Mon Jun 8 15:57:58 EDT 2009
On Jun 8, 9:50 am, Jean-Michel Pichavant <jeanmic... at sequans.com>
wrote:
> Aaron Brady wrote:
> > Shorter is always better.
>
> > url+= { '/': '' }.get( url[ -1 ], '/' )
>
> Why bother with spaces or 3 letter-wide token, check this :o) :
> x+={'/':''}.get(x[-1],'/')
>
> Apart from joking, the following proposed solution is by **far** the one
> I prefer
>
> > if not url.endswith('/'):
> > url += '/'
>
> Maybe not the shorter, but the most concise and clear to me.
Why won't Python permit:
url.endswith( '/' ) or url.append( '/' )
? Should it? Do we find it just as concise and clear? Does it
outweigh the priority of the immutability of strings? It works on
lists, for example. A sole mutating operation could create a highly
and finely tempered compromise with immutability. Would it be
'append'?
I like Scott's and MRAB's idea for slicing, not indexing, the last
character.
The most literal translation of the original natural language is:
>>> #ensure that the url ends with a '/'
>>> ensure( url, string.endswith, '/' )
(Is it not?) But the parameters aren't sufficient to define 'ensure'
generally, and it won't be able to mutate 'url' regardless.
More information about the Python-list
mailing list