python - 在 python 中使用 "*"

标签 python

我应该使用找出如何使用“*”来总结几个值。 例如:

sum_all(1, 2, 3, 4, 5)  
15
sum_all(49, 51)  
100

给定一个通用函数,例如:

def sum_all(*args)

我不确定如何在代码中实现 *。

最佳答案

def sum_all(*args):
    total = 0
    for arg in args:
        total += sum(arg)
    return total

为了与我认为与我同时发布的其他人不同,我将解释并提出另一种解决方案。

在做*args时你可以这样看:

def sum_all([arg1, arg2, arg3, ...]):

这对编码来说会很乏味,而且由于您不知道给定了多少参数,所以您改为执行 *args,它会动态地采用列表格式的“无限”数量的参数。

我能想到的最简洁的方法:

def sum_all(*args):
    return sum(sum(arg) for arg in args)

这假设输入是这样的:

sum_all([1,2,3], [5,5], [10,10])

如果不跳过其中一个和:

def sum_all(*args):
    return sum(args)

关于python - 在 python 中使用 "*",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22709016/

相关文章:

python - Python 安装中的 Tcl/tk 版本

python - Django 模型字段如何工作?

python - .ptvs 可以安全地被 git 忽略吗?

python - 在Python中连接和排序数据

python - 如何使用 ICC 配置文件对一组任意像素值(而不是图像数据结构)执行颜色变换?

python - 单个 django ModelForm 中的多个模型?

python - 我应该如何在 Django 中按类别组织项目列表?

python - 使用 numpy 数组按组 ID 创建序列

python - matplotlib 图 vs 子图 vs 轴?

python - docopt 的选项多样性