函数多返回值赋值性能优化:单次调用分配变量的实现方法
如何单次调用函数并分配结果给多个变量?
当然有高效的解决办法!Python的元组解包特性正好能满足你的需求,让你只调用一次函数,就能把返回的多个值一次性分配给不同变量。
先看你的例子,函数定义是:
def my_func(x): return x+1, x**2, x**3
你之前的写法会多次调用函数,对耗时函数来说完全是资源浪费。现在只需要一行代码就能完成单次调用+多变量赋值:
var1, var2, var3 = my_func(2)
这样my_func(2)只会被调用一次,它返回的多个值会被Python自动打包成元组(哪怕你没写括号),随后元组会被逐个解包,分别赋值给var1、var2、var3。运行后var1=3,var2=4,var3=8,和你原来的结果完全一致,但效率提升明显。
额外技巧:处理不需要的返回值
如果有些返回值你用不上,可以用下划线_来占位忽略:
var1, _, var3 = my_func(2) # 跳过第二个返回值
处理不确定数量的返回值
如果函数返回的元素数量不固定,还可以用*来收集剩余的元素到列表里:
var1, *rest = my_func(2) # var1=3,rest=[4,8]
这种方式不仅避免了重复调用耗时函数,代码也更简洁易读,是Python里处理多返回值的标准做法。
内容的提问来源于stack exchange,提问作者curious_cosmo
相关产品推荐
相关产品推荐

