我想编写一个python函数,使用+
运算符添加所有参数。未指定参数数量:
def my_func(*args):
return arg1 + arg2 + arg3 + ...
我该怎么做?
最好的问候
答案 0 :(得分:13)
只需使用sum内置功能
即可>>> def my_func(*args):
... return sum(args)
...
>>> my_func(1,2,3,4)
10
>>>
修改强>
我不知道为什么你要避免求和,但是here we go:
>>> def my_func(*args):
... return reduce((lambda x, y: x + y), args)
...
>>> my_func(1,2,3,4)
10
>>>
您可以使用operator.add代替lambda
。
<强> EDIT2:强>
我查看了您的other questions,使用自定义时,您的问题似乎是使用sum
作为key
的{{1}}参数类。我answered您的问题,并提供了一种在我的回答中使用max
课程的方法。
答案 1 :(得分:4)
这个怎么样:
def my_func(*args):
my_sum = 0
for i in args:
my_sum += i
return my_sum
如果您不想使用+=
运算符,那么
my_sum = my_sum + i
答案 2 :(得分:2)
如果你肯定不会使用sum
,那么就像:
def func(*args, default=None):
from operator import add
try:
return reduce(add, args)
except TypeError as e:
return default
Py3中的或functools.reduce