Python的赋值语句中隐藏着很多技巧,这都是Python的开发者为了方便Python使用者,使后者能以更简洁易读的代码实现更强大广泛的功能而花费的心思。
1.链式赋值
>>> x=y=1
>>> x
1
>>> y
1
2.增强赋值
>>> x=y=1
>>> x
1
>>> x+=2
>>> x
3
>>> x*=2
>>> x
6
>>> x/=2
>>> x
3.0
>>> x%=2
>>> x
1.0
3.序列封包
>>> values=1,2,3
>>> values
(1, 2, 3)
这其实是将值用逗号分隔,创建一个元组。
4.序列解包
>>> values=1,2,3,4,5
>>> values
(1, 2, 3, 4, 5)
>>> v1,v2,v3,v4,v5=values
>>> v1
1
>>> v2
2
>>> v3
3
>>> v4
4
>>> v5
5
在这里序列解包其实还是对元组的解包,因为元组不能修改,所以一般对其解包来处理其元素。有些返回值是元组的函数,这种方式处理起来比较方便。
>>> v1,v2,v3=values
>>> v1
1
>>> v2
2
>>> v3
3>>> values=[1,2,3]
>>> v1,v2,v3=values
>>> v1
1
>>> v2
2
>>> v3
3
当然列表也可以进行解包。
以上例子是解包的序列元素个数和等号左边列出的目标数相同的情况,当不同时,需要用星号运算符来收集多余的值。
>>> values=1,2,3,4,5
>>> v1,v2,*v3=values
>>> v1
1
>>> v2
2
>>> v3
[3, 4, 5]
*v3收集了多余的元素,注意,v3是一个列表的形式。
>>> v1,*v2,v3=values
>>> v1
1
>>> v2
[2, 3, 4]
>>> v3
5
星号放中间,可以收集中间的元素。
网友评论