一起增加一些变量

时间:2019-03-24 17:02:30

标签: python python-3.x

这可能是一个愚蠢的问题,但我无法弄清楚。我有一个返回4个值的函数。我想将它们添加到已有的4个变量中。我可以在一行代码中使用+=吗?原因现在我出现语法错误,我不想仅仅为了做加法而定义4个临时变量。

我尝试过以下代码:

def some_func():
        return a,b,c,d
a1,b1,c1,d1+=some_func()

我收到此错误:illegal expression for augmented assignment

我该如何解决?

2 个答案:

答案 0 :(得分:0)

不幸的是,我认为您无法以这种特定方式进行操作。

您可以从函数中返回字典,将当前变量(a,b,c)视为键,并在其中分组对应的值。随后可以访问该键并将其绑定到您想要的变量在:)

答案 1 :(得分:0)

您可以这样操作:

a1, a2, a3, a4 = list(map(sum, zip([a1, a2, a3, a4], some_func())))

完整示例

def some_func():
    return 1, 2, 3, 4


a1, a2, a3, a4 = 1, 2, 3, 4

a1, a2, a3, a4 = list(map(sum, zip([a1, a2, a3, a4], some_func())))

print(a1, a2, a3, a4)

使用高阶函数mapzip

首先,zip函数zip([a1, a2, a3, a4], some_func())接受some_func()返回的值和[a1, a2, a3, a4]的现有值,并在它们之间创建一个元组((1, 1), (2, 2) ... )。然后使用高阶函数map并给定函数sum,由zip生成的元组列表将函数sum应用于对。然后,将结果(列表)提取到变量a1, a2, a3, a4中。

输出:

2 4 6 8