Terry Hancock <[EMAIL PROTECTED]> wrote: > Before the dict constructor, you needed to do this: > > d={} > for key in alist: > d[key]=None
I just re-read the documentation on the dict() constructor. Why does it support keyword arguments? dict(foo="bar", baz="blah") ==> {"foo":"bar", "baz"="blah"} This smacks of creeping featurism. Is this actually useful in real code? It took me several readings of the doc to understand what this was doing. Essentially, it's Perl's bareword syntax, and once I realized that, I simultaneously understood what was happening and was revolted that Python seems to have picked up one of Perl's most bizarre and confusing features. I also think the published description is needlessly confusing. Why does it use {'one': 2, 'two': 3} as the example mapping when {'one': 1, 'two': 2} would illustrate exactly the same point but be easier to comprehend. The mapping given is the kind of thing I would expect to see in an obfuscated programming contest. Also, what's the point of the last example: dict([(['one', 'two'][i-2], i) for i in (2, 3)]) It boils down to passing a list of tuples as an argument, which is already illustrated by other examples. This is just a complicated and obtuse way to construct the list of tuples. What does it add to the understanding of how the dict() constructor works? -- http://mail.python.org/mailman/listinfo/python-list