By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
439,931 Members | 2,015 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 439,931 IT Pros & Developers. It's quick & easy.

Set literals

P: n/a
How about overloading curly braces for set literals, as in
aSet = {1,2,3}


- It is the standard mathematic set notation.
- There is no ambiguity or backwards compatibility problem.
- Sets and dicts are in many respects similar data structures, so why not share the same delimiter ?

*ducks*
Jul 18 '05 #1
Share this Question
Share on Google+
3 Replies


P: n/a
> - There is no ambiguity or backwards compatibility problem.

....at least if it wasn't for the empty set.. hmm...
Jul 18 '05 #2

P: n/a
+1 from me.

The other possible meaning for {1,2,3} would be {1:None,2:None,3:None},
but that is usually meant to be a set anyway (done with a dict).

So what is this: {1:2, 3, 4 } (apart from "nearly useless") ?

hmmm, thinking a bit more about this, it seems
you can build a set from a dict's keys, but not the other
way around. Is this odd, or what ?
a = set({1:0,2:0,3:0})
a set([1, 2, 3])
dict(a)

Traceback (most recent call last):
File "<stdin>", line 1, in ?
TypeError: cannot convert dictionary update sequence element #0 to a
sequence

Simon.

Jul 18 '05 #3

P: n/a
si***@arrowtheory.com> wrote:
+1 from me.

The other possible meaning for {1,2,3} would be {1:None,2:None,3:None},
but that is usually meant to be a set anyway (done with a dict).

So what is this: {1:2, 3, 4 } (apart from "nearly useless") ?
Syntax error; you'll have to decide whether you want a set or a dict.
hmmm, thinking a bit more about this, it seems
you can build a set from a dict's keys, but not the other
way around. Is this odd, or what ?
a = set({1:0,2:0,3:0})
a set([1, 2, 3])
dict(a) Traceback (most recent call last):
File "<stdin>", line 1, in ?
TypeError: cannot convert dictionary update sequence element #0 to a
sequence

Simon.


Nothing odd here. The set constructor takes an iterable, and dict.__iter__ iterates through the
dict's keys, so the set a in your example doesn't know anything about the dict's values. You can go
back and forth a set and a dict if you store the dict's items instead:
a = set({1:0,2:0,3:0}.iteritems())
a set([(1,0), (2,0), (3,0)]) dict(a)

{1:0, 2:0, 3:0}

Regards,
George
Jul 18 '05 #4

This discussion thread is closed

Replies have been disabled for this discussion.