【问题标题】:Increment a few variables together [duplicate]一起增加几个变量[重复]
【发布时间】:2019-08-15 00:21:12
【问题描述】:

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

我试过这段代码:

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

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

我怎样才能解决这个问题?

【问题讨论】:

标签: python python-3.x


【解决方案1】:

你可以这样做:

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 并给定函数sumzip 生成的元组列表在对上应用函数sum。然后我们将结果(这是一个列表)提取到变量a1, a2, a3, a4

输出:

2 4 6 8

【讨论】:

    【解决方案2】:

    很遗憾,我不相信你能以那种特定的方式做到这一点。

    您可以改为从您的函数返回一个字典,将当前变量(a、b、c)视为键,并在其中分组相应的值。然后可以访问它并将其绑定到您以后想要的变量上:)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-05-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-30
      • 2013-06-05
      相关资源
      最近更新 更多