欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2024-02-04 13:11:04
Python 解压可迭代对象赋值给多个变量1.将序列分解为单独的变量首先我们先看看怎样将序列分解为单独的变量。在python中,任何的序列在变量的总数和结构,与序列相吻合时,可以通过简单的赋值操作来分解。如:>>> info = ['小明',22,183]>>> name,age,height = info>>> name'小明'>>> age22>>> height183当然,前提是变量的...

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

本文地址:https://blog.csdn.net/Jerry_233/article/details/107569201

相关标签: 总结与分享