+
演算子を使用して、すべての引数を追加する python 関数を書きたいと思います。引数の数が指定されていません:
def my_func(*args):
return arg1 + arg2 + arg3 + ...
どうすればいいのですか?
よろしくお願いします
sum組み込み関数を使用するだけです
>>> def my_func(*args):
... return sum(args)
...
>>> my_func(1,2,3,4)
10
>>>
編集:
なぜ合計を避けたいのかわかりませんが、ここに行きます:
>>> def my_func(*args):
... return reduce((lambda x, y: x + y), args)
...
>>> my_func(1,2,3,4)
10
>>>
の代わりにoperator.addlambda
を使用することもできます。
編集2:
私はあなたの他の 質問を見ましたが、あなたの問題はカスタムクラスを使用するときsum
のkey
パラメータとして使用しているようです. max
私はあなたの質問に答え、私の答えであなたのクラスを使用する方法を提供しましたsum
.
これはどう:
def my_func(*args):
my_sum = 0
for i in args:
my_sum += i
return my_sum
+=
演算子を使用したくない場合は、
my_sum = my_sum + i
絶対に を使用しない場合はsum
、次のようにします。
def func(*args, default=None):
from operator import add
try:
return reduce(add, args)
except TypeError as e:
return default
またはfunctools.reduce
Py3で