Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.python > #17306

Re: How to generate "a, b, c, and d"?

Newsgroups comp.lang.python
Date 2011-12-15 11:01 -0800
References <9393353.282.1323967703697.JavaMail.geo-discussion-forums@vbyc2> <4EEA35F8.4090502@tim.thechases.com> <4EEA3A47.5020106@stoneleaf.us> <mailman.3690.1323975113.27778.python-list@python.org>
Subject Re: How to generate "a, b, c, and d"?
From Roy Smith <roy@panix.com>
Message-ID <mailman.3691.1323975683.27778.python-list@python.org> (permalink)

Show all headers | View raw


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.

Back to comp.lang.python | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

How to generate "a, b, c, and d"? Roy Smith <roy@panix.com> - 2011-12-15 08:48 -0800
  Re: How to generate "a, b, c, and d"? MRAB <python@mrabarnett.plus.com> - 2011-12-15 17:27 +0000
  Re: How to generate "a, b, c, and d"? Tim Chase <python.list@tim.thechases.com> - 2011-12-15 12:01 -0600
  Re: How to generate "a, b, c, and d"? Ethan Furman <ethan@stoneleaf.us> - 2011-12-15 10:19 -0800
  Re: How to generate "a, b, c, and d"? Tim Chase <python.list@tim.thechases.com> - 2011-12-15 12:51 -0600
    Re: How to generate "a, b, c, and d"? Roy Smith <roy@panix.com> - 2011-12-15 11:01 -0800
    Re: How to generate "a, b, c, and d"? Roy Smith <roy@panix.com> - 2011-12-15 11:01 -0800
  Re: How to generate "a, b, c, and d"? MRAB <python@mrabarnett.plus.com> - 2011-12-15 19:27 +0000
  Re: How to generate "a, b, c, and d"? Ian Kelly <ian.g.kelly@gmail.com> - 2011-12-15 14:22 -0700
  Re: How to generate "a, b, c, and d"? Terry Reedy <tjreedy@udel.edu> - 2011-12-15 19:57 -0500
  Re: How to generate "a, b, c, and d"? Chris Angelico <rosuav@gmail.com> - 2011-12-16 13:42 +1100
  Re: How to generate "a, b, c, and d"? Terry Reedy <tjreedy@udel.edu> - 2011-12-16 00:26 -0500

csiph-web