ihit's diary

ちょっとしたメモに

python Tips

mapに複数の引数の関数を渡す

def func(x,y):
	return x*y

に対して

map(func,range(10),range(11:21))

map(lambda x,y:func(x,y),range(10),range(11:21))

でOK

ただし,multiprocessingを使うときはこうは行かなくて

def argwrapper(args):
	return args[0](*args[1:])

を定義した後

func_args = zip(range(10),range(11:20))
p.map(argwrapper, func_args)

としなければいけない.

あと

c = zip(a,b)

の逆は

a,b = zip(*c)