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

Jack Diederich jack at performancedrivers.com
Thu Apr 27 21:19:00 CEST 2006


On Thu, Apr 27, 2006 at 10🔞23AM -0700, Alex Martelli wrote:

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.

Grepping through my own for joins that use a literal:

Join type Count

','.join 83 ''.join 61 # the default suggested above str.join 35 ' '.join 28 string.join 10 OTHER.join 45 # everything else with a literal ' AND '.join, etc

So I'd prefer if the seperator was explicit and up front where I can see it instead of hiding at the end.

Also, if join() is builtin does that mean split() will be too?

-Jack



More information about the Python-3000 mailing list