Python 解压可迭代对象赋值给多个变量

Python 解压可迭代对象赋值给多个变量


1.将序列分解为单独的变量

首先我们先看看怎样将序列分解为单独的变量。

在python中,任何的序列在变量的总数和结构,与序列相吻合时,可以通过简单的赋值操作来分解。
如:

>>> info = ['小明',22,183]
>>> name,age,height = info
>>> name
'小明'
>>> age
22
>>> height
183

当然,前提是变量的总数和结构必须与序列相吻合。不然就会报错。
如:

>>> n=(1,2)
>>> x,y,z=n
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: not enough values to unpack (expected 3, got 2)

只要对象是可迭代的,就可以执行分解操作。 包括字符串,文件对象,迭代器和生成器。

>>> i = 'passion'
>>> a,b,c,d,e,f,g=i
>>> a
'p'
>>> b
'a'
>>> c
's'
>>> 

2.解压可迭代对象赋值给多个变量

假设你现在在管理用户信息,每条信息包含一个名字,年龄,不确定数量的电话号码。
此时你可以分解信息:

>>> info = ['小明',22,183,12312312312,23232323233]
>>> name,age,height,*phone = info
>>> name
'小明'
>>> phone
[12312312312, 23232323233]
  • 通过 _*_星号表达式,接受任意数量的元素,生成列表类型。

有时你只想从序列中提取你所需要的关键信息,其他信息丢弃,这时你可以这样:

>>> info = ['小明',22,183,(98,3,14)]
>>> name,*_,(year,*_) = info
>>> name
'小明'
>>> year
98
  • 通过灵活的运用 * 来帮我们更加直观的提取数据

非常感谢小伙伴们能看到这里,如果能还能点个赞,那就是对我最大的鼓励!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值