String format - resolve placeholders names
Ervin Hegedüs
airween at gmail.com
Fri Nov 20 10:53:00 EST 2015
Hello Chris,
On Sat, Nov 21, 2015 at 02:06:11AM +1100, Chris Angelico wrote:
> On Sat, Nov 21, 2015 at 1:52 AM, Ervin Hegedüs <airween at gmail.com> wrote:
> > Python has a good string formatter, eg. I can do this:
> >
> > s = "{who} likes {what}"
> > d = {'who': "Adam", 'what': "ants"}
> > s.format(**d)
...
> > But is there any other (direct) way, which keywords exists in
> > string?
>
> I think what you're asking for can be done using format_map with a
> custom mapping object:
>
> >>> class IdentiMap:
> ... def __init__(self):
> ... self.keys = []
> ... def __getitem__(self, key):
> ... self.keys.append(key)
> ...
> >>> m = IdentiMap()
> >>> "{who} likes {what}".format_map(m)
> 'None likes None'
> >>> m.keys
> ['who', 'what']
>
> Does that help?
absolutely, many thanks again!
a.
More information about the Python-list
mailing list