Clodoaldo Pinto wrote: > I know how to format strings using a dictionary: > >>>> d = {'list':[0, 1]} >>>> '%(list)s' % d > '[0, 1]' > > Is it possible to reference an item in the list d['list']?: > >>>> '%(list[0])s' % d > Traceback (most recent call last): > File "<stdin>", line 1, in ? > KeyError: 'list[0]'
No, but you can provide a modified dictionary to get the effect: >>> class Dict(dict): ... def __getitem__(self, key): ... if key in self: ... return super(Dict, self).__getitem__(key) ... return eval(key, self) ... >>> d = Dict(list=[0, 1]) >>> "%(list)s" % d '[0, 1]' >>> "%(list[0])s" % d '0' >>> "%(list[1]+42)s" % d '43' Peter -- http://mail.python.org/mailman/listinfo/python-list