On Wednesday, August 28, 2013 3:10:49 PM UTC+2, Jussi Piitulainen wrote: > AdamKal writes: > > > > > Hi, > > > > > > From time to time I have to apply a series of functions to a value > > > in such a way: > > > > > > func4(func3(func2(func1(myval)))) > > > > > > I was wondering if there is a function in standard library that > > > would take a list of functions and a initial value and do the above > > > like this: > > > > > > func_im_looking_for([func1, func2, func3, func4], myval) > > > > > > I looked in itertools but nothing seamed to do the job. This seams > > > like something vary obvious that was needed many times elsewhere so > > > maybe you could help me? > > > > If you can have things backwards, or have func_im_looking_for reverse > > things first, you can do it this way: > > > > from functools import reduce > > > > def funcall(arg, fun): return fun(arg) > > > > def func1(arg): return 'f1({})'.format(arg) > > def func2(arg): return 'f2({})'.format(arg) > > def func3(arg): return 'f3({})'.format(arg) > > > > # prints: f1(f2(f3(3.14))) > > print(reduce(funcall, (func3, func2, func1), 3.14))
I had never thought about the "f({0})".format(arg) trick, that is excellent, thank you!!! -- http://mail.python.org/mailman/listinfo/python-list