[Python-3000] Automatically invoking str() in str.join()

Alex Martelli aleaxit at gmail.com
Thu Apr 27 19:18:23 CEST 2006


On 4/27/06, Barry Warsaw <barry at python.org> wrote:
> On Thu, 2006-04-27 at 10:08 -0700, Aahz wrote:
>
> > While I hate the way it looks, I never have gotten mixed up about the
> > order of arguments since switching to ''.join(l).
>
> Which is why
>
> EMPTYSTRING = ''
>
> ...
>
> EMPTYSTRING.join(seq)
>
> looks much better.  But hey, yeah, a join() builtin would be fine if it
> took the string arg first, so that
>
> ''.join(seq) == join('', seq)

I think I would prefer a signature of:
    join(seq, joiner='')

Rationale: an emptystring joiner is the most frequent cases, but
several others (space, newline, space-comma, ...) occur often enough
to be worth allowing the joiner to be optionally specified.

The ability to omit the joiner in most cases works particularly well
with genexps, e.g.

join(str(x) for x in whatever)

ve

join('', (str(x) for x in whatever))


Alex


More information about the Python-3000 mailing list