FWIW, I ended up with:
n = len(names)
if n == 0:
return ''
if n == 1:
return names[0]
pre = ', '.join(names[:-1])
post = names[-1]
return '%s, and %s' (pre, post)
the slice-and-join() takes care of both the 2 and >2 element cases at the same
time :)
It would be nice if there were some standard way to do this. I'm sure I've
seen something that was essentially a join() that took two delimiters; one for
most elements, the other a special-case for the last one. I can't remember
where I saw it. I'm guessing in some web framework.
--
http://mail.python.org/mailman/listinfo/python-list