python 拆包_python3拆包详解

本文介绍了Python中可迭代对象的拆包概念,包括通过变量接收和使用'*'进行拆包的方式。强调了在拆包时需注意元素与变量数量的对应,并展示了字典拆包只会得到key的特点。同时提到了函数参数中的'*args'和'**kwargs'用于接收未命名和命名参数,它们分别将参数存储到元组和字典中。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

对于可迭代对象,如元组、列表、字符串、集合、字典这些可迭代对象都可以被拆包,拆包是指将一个结构中的数据拆分为多个单独变量中。拆包的方式大致有两种,一种是以变量的方式来接收,另一种是用‘*’号。下面先讲第一种方式。

以变量的方式接收一定要注意左右两边元素的个数和变量个数要统一,不然会报错。先以一个元组为例,如下一个元组:

a = ('computer',2,8000,(2018,10,16))

这个元组的意思是一个人买了两台电脑,一台8000人名币,于2018年10月16日购买。

如果我们仅以两个变量来接收的话,看看会怎样?

4b920e4768d56fd1a913d79c95e864a6.png

现在我们用四个变量来接受这个元组,将其数据拆成一个个单独的数据。

e8eed4942969eafeef06da12f2214b84.png

如果我们只想获取其价格和购买日期,前面两个元素我们可以用一个变量来接受,这个变量由通配符构成。

45f42828c1944d226d546a75e392355d.png

很明显,一个通配符构成的变量可以替代前面的两个变量,但其本身没有什么意义,故在交互模式下直接输入*_会报错。通配符构成的变量可以替代指定范围内的所有变量,这为取出指定元素带来了便利。

与其他可迭代对象不同的是,字典拆包出来的仅仅是key,如下所示:

d60ee36fced3722b658674e7b8466d14.png

第二种方式用*来拆包就比较粗暴了,如下所示:

6cc71f500a0af0653abab31b9613a2f2.png

可以发现,用*给字典拆包,拆出的元素还是key。

其实还有一种拆包,它是鉴于函数来实现的,这种函数也同样实现了装包这个功能。*args和 **kwargs这两个参数相信大家都不陌生,一个是用来接收多余的未命名参数,另一个是用来接收形参中命名参数。args它是一个元组,它把传入的数据放进了args元组中,而kwargs是一个字典,故装包的意义就是把未命名的参数和命名的参数放在元组或字典中。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值