5.2.1 序列解包
序列解包的别名为“可迭代对象解包”
- 可同时给多个变量赋值
x,y,z=1,2,3
print(x,y,z)
输出: 1 2 3
- 可交换多个变量的值:
x,y,z=z,x,y
输出结果:x值为3,y值为1,z=2
- 将一个序列(或任何可迭代对象解包),将得到的值存储在一系列变量中。
>>> values=1,2,3
>>> values
>>> (1,2,3) #元组
>>> x,y,z=values # 结果x值为1,y值为2,z值为3
-
从字典中用popitem方法删除一个键-值对,键-值对会以一个元组的方式返回,可以将返回元组解包到2个变量里。
-
要解包的序列包含的元素个数必须与等号左边的列出的目标个数相同。
-
*表达式 可以获取单个变量的多个元素,即用来收集多余的值,这样 无需 确保值与变量的个数必须相同
*获取的默认值为list
>>> a,b,*c=1,2,3,4
>>>a
1
>>>b
2
>>>c
[3,4]
#获取中间部分:
>>>a,*b,c
=0,1,2,3,4
>>>a
0
>>>c
4
>>>b
[1,2,3]
#如果左值比右值多,那么带*的变量默认值为空列表
#嵌套解包
>>>(a,b),(c,d)=(1,2),(3,4)
>>> a
>>>1
>>>b
>>>2
>>>c
>>>3
>>>d
>>>4