能否在一行代码中为多个变量分别添加对应值?
一行代码为多个变量分别添加对应值的实现方法
Python里没有a,b += (1,2)这种直接支持的语法,但有几种简洁的单行实现方式:
最直观的写法:通过元组解包直接赋值,逐个计算变量的新值
a, b = a + 1, b + 2如果增量是现成的元组(比如
delta = (1,2)),可以改成:a, b = a + delta[0], b + delta[1]用
zip+map组合,适合变量和增量数量较多的场景a, b = map(sum, zip((a, b), (1, 2)))原理是把变量元组和增量元组的对应元素配对,对每对元素求和,最后把结果解包赋值给原变量。
生成器表达式写法,逻辑和上面类似:
a, b = (x + y for x, y in zip((a, b), (1, 2)))
这些写法本质都是先计算出包含新值的元组,再重新赋值给原变量,和分开写a += 1; b += 2的效果完全一致,同时满足了单行简洁的需求。
内容的提问来源于stack exchange,提问作者Spike
相关产品推荐
相关产品推荐

