[EMAIL PROTECTED] (Alex Martelli) writes: > I do hate it that > [ x for x in container if predicate(x) ] > is an exact synonym of the more legible > list( x for x in container if predicate(x) )
Heh, I hate it that it's NOT an exact synonym (the listcomp leaves 'x' polluting the namespace and clobbers any pre-existing 'x', but the gencomp makes a new temporary scope). > and the proposed > {1, 2, 3} > is an exact synonym of > set((1, 2, 3)) There's one advantage that I can think of for the existing (and proposed) list/dict/set literals, which is that they are literals and can be treated as such by the parser. Remember a while back that we had a discussion of reading expressions like {'foo': (1,2,3), 'bar': 'file.txt'} from configuration files without using (unsafe) eval. Aside from that I like the idea of using constructor functions instead of special syntax. -- http://mail.python.org/mailman/listinfo/python-list