On Mon, Jun 6, 2011 at 9: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?
print "{solo} was captured by {jabba}".format(**locals()) # RIGHT You must use prefix-** in the call to unpack the mapping as keyword arguments. Note that using locals() like this isn't best-practice. Cheers, Chris -- http://rebertia.com -- http://mail.python.org/mailman/listinfo/python-list