Python拆包:就是把元组或字典中的数据单独的拆分出来,然后赋予给其他的变量。
拆包: 对于函数中的多个返回数据,去掉元组、列表或者字典直接获取里面数据的过程。
def func(): # 经过一系列操作返回一个元组 return 100, 200 # tuple元组类型的数据# 定义两个变量接收元组中的每个数组(拆包)num1, num2 = func()# 打印num1和num2print(num1)print(num2)
记住:字典拆包,只能把每个元素的key拆出来
dict1 = {'name':'小明', 'age':18}# 拆包的过程(字典)a, b = dict1print(a)print(b)# 获取字典中的数据print(dict1[a])print(dict1[b])
c1 = 10c2 = 2# 引入临时变量temptemp = c2c2 = c1c1 = tempprint(c1, c2)
第二种方式:使用加法与减法运算交换两个变量的值(不需要引入临时变量)
c1 = 10c2 = 2c1 = c1 + c2c2 = c1 - c2c1 = c1 - c2print(c1, c2)
第三种方法:只有Python才具有的特性,叫做拆包。
c1 = 10c2 = 2c1, c2 = c2, c1
原理:
第一步:把c2和c1组成一个元组(c2, c1);
第二步:使用拆包特性,把元组中的两个元素分别赋值给c1和c2。
def func(*args, **kwargs):print(args)print(kwargs)# 定义一个元组(也可以是列表)tuple1 = (10, 20, 30)# 定义一个字典dict1 = {'first': 40, 'second': 50, 'third': 60}# 需求:把元组传递给*args参数,字典传递给**kwargs# ① 如果想把元组传递给*args,必须在tuple1的前面加一个*号# ② 如果想把字典传递给**kwargs,必须在dict1的前面加两个**号func(*tuple1, **dict1)
今日学习完毕,课后作业:
请你编写一个Python程序,实现以下功能:
① 定义一个函数show_student_detail(),该函数接收三个参数:name(姓名)、age(年龄)和hobby(爱好);
② 函数功能是打印学生信息,格式为:"{name}今年{age}岁,喜欢{hobby}。";
③创建一个字典student_dict,包含三个键值对,键分别为'name'、'age'和'hobby';
④ 使用字典拆包(**操作符)将字典中的键值对作为参数传递给show_student_detail()函数。