Peter Cacioppi wrote: > my fav so far is this > > _ = lambda c : lambda x : c(*x) > > c can be any calleable and x any iterable, but I tend to use it with a > class, and then map _(class) over the result of a zip. > > It must be in the library somewhere, but I haven't found it. I'm never > sure what to call it, so I just reroll it into _ as needed. It's pretty > easy for me to remember, but I'll probably tattoo it on my chest just in > case.
You mean >>> class P: ... def __init__(self, x, y): ... self.x = x ... self.y = y ... def __repr__(self): ... return "Point(x={0.x}, y={0.y})".format(self) ... >>> P(1, 2) Point(x=1, y=2) >>> _ = lambda c: lambda x: c(*x) >>> list(map(_(P), zip([1,2,3], [6, 5, 4]))) [Point(x=1, y=6), Point(x=2, y=5), Point(x=3, y=4)] ? While the obvious approach would be >>> [P(*args) for args in zip([1,2,3], [6, 5, 4])] [Point(x=1, y=6), Point(x=2, y=5), Point(x=3, y=4)] there is also itertools.starmap(): >>> from itertools import starmap >>> list(starmap(P, zip([1,2,3], [6, 5, 4]))) [Point(x=1, y=6), Point(x=2, y=5), Point(x=3, y=4)] -- https://mail.python.org/mailman/listinfo/python-list