creating dictionnaries

Michael P. Reilly arcege at
Tue Jun 22 17:01:25 EDT 1999

Christian Caremoli <Christian.Caremoli at> wrote:
: Hi,
: Dictionnaries can be created like that :
: d={'a':1,'b':2}

: By calling a function you create a dictionnary like that :
: def f(**d):
:    return d

: d=f(a=1,b=2)

: I would like to be able to create dictionnaries with some similar syntax
: like keyed tuples :
: d=(a=1,b=2)

: Is there a way to do that ?

In a word, No.  The structure of the language would perform a namespace
lookup on "a" and "b" instead of taking them as strings.  Also a tuple
is still an expression, and Python does not allow assignments inside
expressions.  This means that you would get a SyntaxError exception
during bytecode compilation.  And even if you didn't, it would be
likely that you would get a NameError exception.


Note: I haven't looked at bytecodehacks, but that might let you do what
you wish.  Since it would be extremely non-portable, I wouldn't suggest
it for published or long-term code.

More information about the Python-list mailing list