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
  • 通过灵活的运用 * 来帮我们更加直观的提取数据

希望能帮助到小伙伴们,如果能还能点个赞,那就是对我最大的鼓励

猜你喜欢

转载自blog.csdn.net/Jerry_233/article/details/107569201