は、いくつかの可能性
def fn(x,k):
return x+k
In [1095]: k=10 # in global space
In [1096]: map(lambda x: fn(x,k), [1,2,3])
Out[1096]: <map at 0xb263e04c> # ops, py3, need
In [1097]: list(map(lambda x: fn(x,k), [1,2,3]))
Out[1097]: [11, 12, 13]
私はマップするために、リストの内包表記を好む、次のとおりです。
In [1100]: [(lambda x: fn(x,k))(x) for x in [1,2,3]]
Out[1100]: [11, 12, 13]
In [1101]: [fn(x,k) for x in [1,2,3]]
Out[1101]: [11, 12, 13]
または両方xとkは反復可能オブジェクトから来る場合は、我々はジップでそれらに参加することができます。
In [1102]: [fn(x,k) for x,k in zip([1,2,3],[10,20,30])]
Out[1102]: [11, 22, 33]
を
私はfunctools.partial
を提案しようとしていましたが、私は2番目のpos itionalな議論。第1引数を部分的に定義するために使用することができます(この場合は関係ありません)。
In [1107]: from functools import partial
In [1111]: [partial(fn, 1)(k) for k in [10,20,30]]
Out[1111]: [11, 21, 31]
In [1112]: list(map(partial(fn, 1),[10,20,30]))
Out[1112]: [11, 21, 31]
私はfn
を変更した場合ので、k
はキーワード引数map
ため
def fn(x,k=0):
return x+k
In [1114]: [partial(fn, k=10)(x) for x in [1,2,3]]
Out[1114]: [11, 12, 13]
と同様になります。私はfn
を定義する場合
ので、タプルを取り、私はマップとジッパーを使用することができます。
def fn(args):
x,k=args
return x+k
In [1117]: list(map(fn,zip([1,2,3],[10,20,30])))
Out[1117]: [11, 22, 33]
おそらく、あなたはむしろあなたはそれが行われるべきだと思うかよりも、あなたの実際のタスクを記述する必要があります。 –