你是否遇到过需要从函数中同时获取多个结果的场景?比如计算一个数据序列的同时返回平均值和总和。在许多语言中,这可能需要通过输出参数或封装成对象来实现,但在Python中,有一种既简洁又优雅的方式。
返回多个值的秘密:元组打包
在Python中,函数可以直接返回多个值,用逗号分隔即可:
python
def calculate_stats(numbers):
total = sum(numbers)
average = total / len(numbers)
return total, average # 返回两个值
这些值会被自动打包成一个元组。调用函数时,你可以选择整体接收这个元组,或者使用元组解包直接获取各个值:
python
# 方式一:整体接收为元组
result = calculate_stats([1, 2, 3, 4, 5])
print(result) # 输出: (15, 3.0)
# 方式二:解包到多个变量
total, avg = calculate_stats([1, 2, 3, 4, 5])
print(f"总和: {total}, 平均值: {avg}")
为什么是元组?元组具有不可变性,能确保返回的数据组合在传递过程中不被意外修改,同时保持了结构的轻量高效。
这种设计体现了Python的实用哲学:用最简单的语法解决常见问题,让代码既清晰又高效。