当前位置:首页 >> 脚本专栏

python解包概念及实例

我们把一个事物进行分解,就可以得到其中的元素。对于python中的解包来说,也是同样的使用,相信大家从名称就可以观察出来了。那么在具体的解包过程中,关于具体的操作方法想必大家还是不清楚的。下面我们就python解包的概念、注意点进行讲解,然后带来一个解包的实例。

1、概念

解包就是把一个容器拆开、分解,在Python中的解包是自动完成的。

变量数量 = 元素数量,会进行逐一赋值。

2、注意

(1)自动解包支持一切可迭代对象。

(2)python3中,支持更高级的解包操作,用星号操作使得等号左边的变量个数可以少于右边迭代对象中元素的个数。

(3)函数调用时,可以用*或者**解包可迭代对象,作为参数传递。

(4)python3.5,函数调用和表达式中可支持更多的解包操作。

3、实例

一个list是一个整体,想把list中每个元素当成个体剥离出来。

> name, age, date = ['Bob', 20, '2018-1-1']
> name
'Bob'
> age
20
> date
'2018-1-1'
2.可迭代对象都可以这样做
# 列表
> a,b,c = ['a', 'b', 'c']
> a
'a'
> a,b,c = enumerate(['a', 'b', 'c'])
> a
(0, 'a')
# 元组
> a,b,c = ('a', 'b', 'c')
> a
'a'
# 字典
> a,b,c = {'a':1, 'b':2, 'c':3}
> a
'a'
> a,b,c = {'a':1, 'b':2, 'c':3}.items()
> a
('a', 1)
# 字符串
> a,b,c = 'abc'
> a
'a'
# 生成器
> a,b,c = (x + 1 for x in range(3))
> a
1

知识点扩展:

解包

在英文里叫做 Unpacking,就是将容器里面的元素逐个取出来放在其它地方,好比你父母去菜市场买了一袋苹果回来分别发给家里的每个成员,这个过程就是解包。Python 中的解包是自动完成的,例如:

student = ['xiaoqiang','man','22']
name,sex,age = student
print(name,sex,age)
结果:xiaoqiang man 22

如果列表中有3个元素,那么刚好可以分配给3个变量。除了列表对象可以解包之外,任何可迭代对象都支持解包,可迭代对象包括元组、字典、集合、字符串、生成器等实现了__next__方法的一切对象。