Paul & Robert wrote... > d = ["soep", "reeds", "ook"] >print ', '.join(d) > soep, reeds, ook
I occasionally have a need for printing lists of items too, but in the form: "Butter, Cheese, Nuts and Bolts". The last separator is the word 'and' instead of the comma. The clearest I could come up with in Python is below. I wonder if there is a more pythonic solution for this problem. Maybe something recursive? Greetings, ''' Formatting a sequence of items such that they are separated by commas, except the last item, which is separated by the word 'and'. Used for making lists of dates and items more human-readable in generated emails and webpages. For example: Four friends have a dinner: Anne, Bob, Chris and Debbie Three friends have a dinner: Anne, Bob and Chris Two friends have a dinner: Anne and Bob One friend has a dinner: Anne No friend has a dinner: ['Anne','Bob','Chris','Debbie'] -> "Anne, Bob, Chris and Debbie" ['Bob','Chris','Debbie'] -> "Bob, Chris and Debbie" ['Chris','Debbie'] -> "Chris and Debbie" ['Debbie'] -> "Debbie" [] -> "" ''' def pretty(f): if len(f)==0: return '' if len(f)==1: return f[0] sepwithcommas=f[:-1] sepwithand=f[-1] s=', '.join(sepwithcommas) if sepwithand: s+=' and '+sepwithand return s friends=['Anne','Bob','Chris','Debbie','Eve','Fred'] while True: print friends,'->',pretty(friends) if friends: friends.pop(0) else: break -- "The ability of the OSS process to collect and harness the collective IQ of thousands of individuals across the Internet is simply amazing." - Vinod Vallopillil http://www.catb.org/~esr/halloween/halloween4.html -- http://mail.python.org/mailman/listinfo/python-list