1. ホーム
  2. python

[解決済み] pythonでmap関数に複数の引数を与え、一方が同じままであるようにするにはどうすればよいですか?

2022-04-13 15:16:30

質問

例えば、次のような関数があるとします。 add 次のように

def add(x, y):
    return x + y

配列に対してmap関数を適用したい

map(add, [1, 2, 3], 2)

意味としては、配列の各要素に2を足したいということです。しかし map 関数は、第3引数にもリストを要求します。

注意してください。 を付けています。 add の例は、わかりやすくするためです。私のオリジナルの関数はもっと複雑です。また、もちろん yadd 関数は、呼び出すたびに変更されるので論外です。

解決方法は?

リスト内包が一つの方法です。

[add(x, 2) for x in [1, 2, 3]]

その他のオプション

a = [1, 2, 3]

import functools
map(functools.partial(add, y=2), a)

import itertools
map(add, a, itertools.repeat(2, len(a)))