[EMAIL PROTECTED] (Alex Martelli) writes: > > Well, [...] notation for regular lists (as opposed to list > > comprehensions) is also unnecessary since we could use "list((a,b,c))". > > Indeed, there's no reason list couldn't accept multiple arguments as an > alternative to one sequence argument, just like min and max. This would > make list(a, b, c) work just perfectly.
What should the output of "print list(1,2,3)" be? Is there a really good reason to make it different from the input syntax? What should list(list(1,2,3)) be? Should "list" really work completely differently depending on whether it has a single arg or multiple args? How would you make a one-element list, which we'd currently write as [3]? Would you have to say list((3,))? > I see no credibly simple and readable alternative to {a:b, c:d} > dictionary display syntax, for example; dict(((a,b),(c,d))) just > wouldn't cut it, because of the "parentheses overload" (double > entendre intended). dict(a=b,c=d) I don't really see why keyword arg names have to be identifiers either. foo(3=4) can pass a **kwargs containing {3:4}. > But list has no such problem, and there's really no added value of > clarity and readability in [a,b,c] vs list(a,b,c). That's subjective at best. Even Scheme doesn't make you use extra keywords to write something as fundamental as a list. ;-) > So the only reason they may "suggest lists" is that you're used to > that display form in Python, but there's no real reason to HAVE a > display form for lists at all, IMHO. Well, what's supposed to happen when you print a list then? -- http://mail.python.org/mailman/listinfo/python-list