这可能是一个愚蠢的问题,但我无法弄清楚。我有一个返回4个值的函数。我想将它们添加到已有的4个变量中。我可以在一行代码中使用+=
吗?原因现在我出现语法错误,我不想仅仅为了做加法而定义4个临时变量。
我尝试过以下代码:
def some_func():
return a,b,c,d
a1,b1,c1,d1+=some_func()
我收到此错误:illegal expression for augmented assignment
我该如何解决?
答案 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)
使用高阶函数map
和zip
。
首先,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