[Python-ideas] Add list.join() please

Jeff Allen ja.py at farowl.co.uk
Tue Jan 29 15:36:28 EST 2019


On 29/01/2019 01:40, Jamesie Pic wrote:
> ... I'm still sometimes confused between the different syntaxes used 
> by join methods:
>
> 0. os.path.join takes *args
> 1. str.join takes a list argument, this inconsistence make it easy to 
> mistake with the os.path.join signature

It seems fairly consistent to make:

     os.path.join('a', 'b', 'c')

short for:

     os.path.sep.join(['a', 'b', 'c'])

> Also, I still think that:
>
> '_'.join(['cancel', name])
>
> Would be more readable as such:
>
> ['cancel', name].join('_')

Please, no. This would be un-Pythonic in my view. It makes so much more 
sense that str should have a method that takes an iterable, returning 
str, than that every iterable should have a join(str) returning str. 
Consider you get this kind of thing for free:

     "-".join(str(i) for i in range(10))

I learned enough Groovy last year to use Gradle and was so disappointed 
to find myself having to write:

            excludes: exclusions.join(',')    // Yes, it's that way round :o

Even Java agrees (since 1.8) with Python.

Jeff Allen

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-ideas/attachments/20190129/ff0fbae7/attachment-0001.html>


More information about the Python-ideas mailing list