On Mon, Jun 6, 2011 at 10:15 AM, Jabba Laci <jabba.l...@gmail.com> wrote: > Hi, > > I'd like to simplify the following string formatting: > > solo = 'Han Solo' > jabba = 'Jabba the Hutt' > print "{solo} was captured by {jabba}".format(solo=solo, jabba=jabba) > # Han Solo was captured by Jabba the Hutt > > What I don't like here is this: "solo=solo, jabba=jabba", i.e. the > same thing is repeated. In "solo=solo", the left part is a key and the > right part is the value of a local variable, but it looks strange. > > I'd like something like this: > print "{solo} was captured by {jabba}".format(locals()) # WRONG! > > But it doesn't work. > > Do you have any idea? >
You were close: print "{solo} was captured by {jabba}".format(**locals()) This will turn locals() into keyword args for the format call. The tutorial has a good explanation on argument unpacking [1]. -eric [1] http://docs.python.org/dev/tutorial/controlflow.html#unpacking-argument-lists > Thanks, > > Laszlo > -- > http://mail.python.org/mailman/listinfo/python-list > -- http://mail.python.org/mailman/listinfo/python-list