Python中的特殊的赋值语句(python中有什么赋值)
off999 2024-11-17 14:32 34 浏览 0 评论
序列赋值
这种赋值方法大家平时也在使用,只是无意识。将含有一些值的元组赋值给含有一些变量的列表,字符串中的字符赋值给含有一些变量的元组。在通常情况下,Python会按位置,由左至右,把右侧序列中的元素赋值给左侧序列中的变量(序列解包)。
例如:
#序列解包全部支持!
a,b,c = 1,2,3 #元组解包
a,b,c = (1,2,3) #元组解包
a,b,c = [1,2,3] #序列解包
a,b,c = {1,2,3} #集合解包
#序列打包仅支持元组和序列!
(a,b,c) = 1,2,3 #元组打包
[a,b,c] = 1,2,3 #序列打包
print(a,b,c) #以上结果都是1,2,3
#字典在python中比较特殊,这种解包方式只能得到!
a,b,c = {"name":"kirin","age":18,"sex":"男"}
print(a,b,c); #输出结果为:name,age,sex;
*号通用赋值
使用带单个星号的名称来更通用地匹配。在如下交互会话中,a,b匹配序列中的前项,res匹配剩下的内容:
>>> a,b,*res = (1,2,3,4)
>>> a
1
>>> b
2
>>> res ###list格式
[3, 4]
另外两种情况:
*a,b=(1,2,3)
#a=[1,2],b=3
a,*b,c=[1,2,3,4]
#a=1,b=[2,3],c=4
这和分片内在的相似,但是不完全相同——一个序列解包赋值总是返回多个匹配项的一个列表,而分片把相同类型的一个序列作为分片的对象返回。
注意边界情况