[Python-Dev] syntactic support for sets (original) (raw)

Steven Bethard steven.bethard at gmail.com
Wed Feb 1 22:58:41 CET 2006


Raymond Hettinger wrote:

[Phillip J. Eby] > The only case that looks slightly less than optimal is: > > set((1, 2, 3, 4, 5)) > > But I'm not sure that it warrants a special syntax just to get rid of the > extra ().

The PEP records that Tim argued for leaving the extra parentheses. What would you do with {'title'} -- create a four element set consisting of letters or a single element set consisting of a string?

I think the answer to this one is clearly that it is a single element set consisting of a string, just as ['title'] is a single element list consisting of a string.

I believe the confusion arises if Brett's proposal for set(1, 2, 3, 4, 5) is considered. Currently, set('title') is a five element set consisting of letters. But set('title', 'author') would be a two element set consisting of two strings? The problem is in calling the set constructor, not in writing a set literal.

That said, I don't think there's really that much of a need for set literals. I use sets almost exclusively to remove duplicates, so I almost always start with empty sets and add things to them. And I'm certainly never going to write set([1, 1, 2]) when I could just write ``set([1, 2])`.

STeVe

You can wordify anything if you just verb it. --- Bucky Katt, Get Fuzzy



More information about the Python-Dev mailing list