Is there an easy way to make string-formatting smart enough to gracefully handle iterators/generators? E.g.
transform = lambda s: s.upper() pair = ('hello', 'world') print "%s, %s" % pair # works print "%s, %s" % map(transform, pair) # fails with a """ TypeError: not enough arguments for format string """ I can force it by wrapping the results of my generator in a call to tuple() or list() print "%s, %s" % tuple(map(transform, pair)) but it feels a bit hackish to me. I find I hit it mostly with calls to map() where I want to apply some transform (as above) to all the items in a list of parameters such as "%s=%s&%s=%s" % map(urllib.quote, params) Any suggestions? (even if it's just "get over your hangup with wrapping the results in list()/tuple()" :) Thanks, -tkc -- http://mail.python.org/mailman/listinfo/python-list