python拆包和封包

"""python的拆包和封包之 *号在函数形参和实参的区别1. 在函数形参定义时添加*就是封包过程,封包默认是以元组形式进行封包2. 在函数实参调用过程添加*就是拆包过程,拆包过程中会报列表或者元组拆成单个元素"""subject = ["math", "chinese", 'english', 'physics', 'history']def print_subject_one(sub):    print(*sub)def print_subject_two(*sub):    print(sub)def print_subject_three(*sub):    print(*sub)def print_subject_four(*sub):    print(*sub)def print_subject_five(*sub):    print(sub)print_subject_one(subject)  # math chinese english physics historyprint_subject_two(subject)  # (['math', 'chinese', 'english', 'physics', 'history'],)print_subject_three(subject)  # ['math', 'chinese', 'english', 'physics', 'history']print_subject_four(*subject)  # math chinese english physics historyprint_subject_five(*subject)  # ('math', 'chinese', 'english', 'physics', 'history')"""python的拆包和封包之 **号在函数形参和实参的区别1. 在函数形参定义时添加**就是封包过程,封包默认是字典形式进行封包,2. 在函数实参调用过程添加**就是拆包过程,通常在存在关键字参数的函数去使用**对字典进行拆包"""hobby = {"jack": "dance", "henry": "basketball", "jenny": "swimming", "richard": "reading"}def print_hobby_one(**bby):    print(bby)def print_hobby_two(**bby):    print(bby)def print_hobby_three(**bby):    if "jack" in bby:        print('jack like dance')    if "jenny" in bby:        print("jenny like swimming")print_hobby_one(**hobby)  # {'jack': 'dance', 'henry': 'basketball', 'jenny': 'swimming', 'richard': 'reading'}print_hobby_two(jack='dance', henry='basketball')  # {'jack': 'dance', 'henry': 'basketball'}print_hobby_three(**hobby)  # jack like dance  jenny like swimming"""python的拆包和封包之 * 在其它场景的应用"""a, *_, c = [1, 2, 3, 4, 5, 6]  # a=1, c=6print(a)  # a=1, c=6print(c)  # a=1, c=6a, b, *_ = [1, 2, 3, 4, 5, 6]print(a)  # a=1print(b)  # b=2# 一行代码搞定两个变量交换赋值x = 10y = 20x, y = y, xprint(x)  # x = 20print(y)  # y = 10

Original: https://www.cnblogs.com/zengmuyao/p/16353664.html
Author: 以小博大
Title: python拆包和封包

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/810293/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球