Looking over the code base, frozensets are used rarely. So I don't think this is warranted.
On Jan 24, 2008 2:32 PM, Raymond Hettinger <[EMAIL PROTECTED]> wrote: > I think it would be more useful for the {e1, e2, e3} literal to be a > frozenset instead of a set. > > In expressions like "x in {'html', 'xml', 'php'}" the compiler could optimize > away the set construction and treat it as a constant. > > In cases where we want to build-up mutable sets, we need to start with set() > anyway: > > s = set() > for elem in source: > s.add(elem) > > I don't think it would be typical to start with a partially filled-out set > and then build-t up further: > > s = {'a', 'b', 'c'} # rare use-case > for elem in source: > s.add(elem) > > One of the primary use cases for frozensets is to be members of other sets or > to be keys in a dict (esp. for graph representations). The repr's of those > nested structures are annoying to read because the word "frozenset" gets > spelled-out over and over again. Here's a few lines from the pprint() output > for a graph of a cube: > > {frozenset([0, 1]): frozenset([frozenset([0]), > frozenset([1]), > frozenset([0, 1, 2])]), > frozenset([0, 1, 2]): frozenset([frozenset([1, 2]), > frozenset([0, 2]), > frozenset([0, 1])])} > > > This would read *much* better with the new notation: > > {{0, 1}: {{0}, > {1}, > {0, 1, 2}}, > {0, 1, 2}: {{1, 2}, > {0, 2}, > {0, 1}}} > > If you want to see how extremely bad the current repr's can get, see the repr > for David Eppstein's cuboctahedron in the tests for pprint: > http://mail.python.org/pipermail/python-checkins/2008-January/065099.html > > In short, I think we would be much better served by using the {} literal > notation for frozensets. > > Raymond > > > P.S. A small side-benefit is it may put an end for interminable requests for > a {:} or {/} notation for empty sets. There's not much need for a literal > for a empty frozenset (use "not s" instead). > > _______________________________________________ > Python-3000 mailing list > Python-3000@python.org > http://mail.python.org/mailman/listinfo/python-3000 > Unsubscribe: > http://mail.python.org/mailman/options/python-3000/guido%40python.org > -- --Guido van Rossum (home page: http://www.python.org/~guido/) _______________________________________________ Python-3000 mailing list Python-3000@python.org http://mail.python.org/mailman/listinfo/python-3000 Unsubscribe: http://mail.python.org/mailman/options/python-3000/archive%40mail-archive.com