Python元组解包机制解析:average_cal函数调用代码疑问解答
Python元组解包的工作原理解析
没错,你完全说对了,average, days_above_average = average_cal(temperature)就是**元组解包(tuple unpacking)**的典型应用,具体拆解来看:
函数返回的隐性元组
你的average_cal函数最后写了return average, count,在Python里这种写法会自动把两个返回值打包成一个元组(括号可以省略),实际返回的是(average, count)这个二元元组。解包赋值的过程
等号左边的两个变量average和days_above_average,会依次接收元组里对应位置的值:元组的第一个元素赋值给average,第二个元素赋值给days_above_average。这相当于一次性完成了两个变量的赋值,比分开写两行代码更简洁高效。
举个极简的例子帮你理解:
def return_two(): return 5, 10 a, b = return_two() # 等同于下面的写法 temp_tuple = return_two() # temp_tuple = (5,10) a = temp_tuple[0] b = temp_tuple[1]
另外,Python里常见的变量交换a, b = b, a,也是利用了同样的元组解包逻辑——右边先形成(b,a)的元组,再解包赋值给左边的a和b。
内容的提问来源于stack exchange,提问作者Faris Faiz
相关产品推荐
相关产品推荐

