python可以对元组和字典进行拆包或解包操作。
1、拆包:元组
示例代码1:
def return_num():return 100, 200num1, num2 = return_num()
print(num1) # 100
print(num2) # 200
运行结果:
示例代码2:
def return_num1():return 100, 200def return_num2():return 100, 200, 300def return_num3():return 100, 200, 300, 400, 500def func(num1, num2):print(num1, num2)def func2(num1, num2, *args):print(num1, num2, args)if __name__ == '__main__':func(*return_num1())# func(*return_num2()) # 报错:TypeError: func() takes 2 positional arguments but 3 were givenfunc2(*return_num1())func2(*return_num2())func2(*return_num3())
运行结果:
2、拆包:字典
示例代码1:
dict1 = {'name': 'TOM', 'age': 18}
a, b = dict1# 对字典进⾏拆包,取出来的是字典的key
print(a) # name
print(b) # age
print(dict1[a]) # TOM
print(dict1[b]) # 18
运行结果:
示例代码2:
dic = {'aa': 'AA', 'bb': 'BB'}
dic2 = {'aa': 'AA', 'bb': 'BB', 'cc': 'CC'}
dic3 = {'aa': 'AA'}def func(aa, bb):print(aa, bb)if __name__ == '__main__':func(**dic)# func(**dic2) # 此时报错:TypeError: func() got an unexpected keyword argument 'cc'# func(**dic3) # 此时报错:TypeError: func() missing 1 required positional argument: 'bb'
运行结果:
示例代码3:
dic = {'aa': 'AA', 'bb': 'BB'}
dic2 = {'aa': 'AA', 'bb': 'BB', 'cc': 'CC', 'dd': 'DD'}
dic3 = {'aa': 'AA'}def func(aa, bb, **kwargs):print(aa, bb, kwargs)print(aa, bb, kwargs.get('cc'))if __name__ == '__main__':func(**dic)func(**dic2)
运行结果: