python中拆包解包用法详解
  TEZNKK3IfmPf 2023年11月14日 31 0

python可以对元组和字典进行拆包或解包操作。

1、拆包:元组

示例代码1:

def return_num():
    return 100, 200


num1, num2 = return_num()
print(num1)  # 100
print(num2)  # 200

运行结果:

python中拆包解包用法详解

示例代码2:

def return_num1():
    return 100, 200


def return_num2():
    return 100, 200, 300


def return_num3():
    return 100, 200, 300, 400, 500


def 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 given
    func2(*return_num1())
    func2(*return_num2())
    func2(*return_num3())

运行结果:

python中拆包解包用法详解

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

运行结果:

python中拆包解包用法详解

示例代码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'

运行结果:

python中拆包解包用法详解

示例代码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)

运行结果:

python中拆包解包用法详解

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月14日 0

暂无评论

推荐阅读
  TEZNKK3IfmPf   2024年05月31日   38   0   0 python开发语言
  TEZNKK3IfmPf   2024年05月31日   28   0   0 python
  TEZNKK3IfmPf   2024年05月31日   30   0   0 python
TEZNKK3IfmPf