[Python-3000] sets in P3K?
Delaney, Timothy (Tim)
tdelaney at avaya.com
Thu May 4 01:15:27 CEST 2006
Jim Jewett wrote:
> On 5/2/06, Raymond Hettinger <rhettinger at ewtllc.com> wrote:
>
>> I think Guido had the best solution. Use set() for empty sets, use
>> {} for empty dicts, use {genexp} for set comprehensions/displays, use
>> {1,2,3} for explicit set literals, and use {k1:v1, k2:v2} for dict
>> literals. We can always add {/} later if demand exceeds distaste.
>
> I understand {1,2,3} vs {k1:v1, k2:v2}, but what is the {genexp} for?
Hmm - how about a slightly radical solution (which I think came up when
we were first discussing introducing sets ...).
Do away with sets altogether. Make the syntax {1, 2, 3} syntactic sugar
for {1:None, 2:None, 3:None}.
Pros:
1. No ambiguity concerning {}.
2. {genexp} will always produce a dict. However, there would be some
ambiguity if we wanted to support single-value-producing genexps (i.e.
returning a single value rather than a 2-tuple for each element). Simple
to disallow that, and provide a wrapper generator that takes an iterable
of single-value elements and generates 2-tuples.
Cons:
1. The set/dict operations don't completely overlap.
2. Performance for set-like dicts won't be as good as for builtin sets.
Tim Delaney
More information about the Python-3000
mailing list