Q:

Asynchronously apply list of python functions to single argument

I'm familiar with python's multiprocessing.Pool and the associated map and map_async calls.  map and map_async take a single function and apply it to iterable of arguments.  I'd like to do the reverse -- take an iterable of functions and apply them to a single argument.  Is there a simple standard idiom for this kind of operation? 
In other words, I'm looking for something like the following:
from multiprocessing import Pool

pool = Pool(4)
functions = (add, subtract, divide, multiply)
args = (1, 2)
result = pool.fmap(functions, args)
print result
# [3, -1, .5, 2]

A:

So.. I would suggest using the existing framework and flipping it on its head. You could do something like the following:
from functools import partial

def operation(args, operator):
    return operator(*args)
final_op = partial(operation, [1,2])

This is more or less equivalent to dano's solution, but I find the use of partial here to be a way to really preserve generality and avoid the brittle nature of accessing arguments by index. It also makes things cleaner on the side of actual usage:
pool = Pool(4)
print pool.map(final_op, (add, sub, div, mul))

