元组比列表要简单,在内存上比列表轻巧,所以封列表
a = 4
b = 5
temp = a
a = b
b = temp
a,b=b,a
# 上面语句当中,等号右边使用了封装,而左边就使用了解构
把线性结构的元素解开,并顺序的赋给其他变量
左边接纳的变量数量,要和右边解开的元素个数一致
举例
举例
a,b=1,2
a,b=(1,2)
a,b=[1,2]
a,b=[10.20]
a,b={10.20}
a,b=(‘a‘:10,‘b‘:20) # 非线性结构也可以解构
a,b={10,20,30}
a,*b={10,20,30}
[a,b]=(1,2)
[a,b]=10,20
(a,b)={30,40}
*变量名
接收,但不能单独使用*变量名
收集后组成一个列表head,*m1,*m2,tail=lst
head,*mid,tail
=*abcdefghijklmn_
_
是一个合法的标识符,也可以作为一个有效的变量使用。lst=[9,8,7,20]
first,*second=lst
head,*_,tail=lst
#_
是合法的标识符,看到下划线就知道这个变量就是不想被使用print(_)
lst=[9,8,7,20]
first,*second=lst
_,*_,tail=lst
print(_)
print(tail)
print(_)
_
这个变量本身没有任何语义,没有任何可读性,所以不是用来给人使用的。_
导致和库当中的_
冲突lst=[1,(2,3,4),5]
中,提取4出来JAVA_HOME=/usr/bin
,返回变量名和路径[1,9,8,5,6,7,4,3,2]
使用冒泡法排序,要求使用封装和结构来交互数据lst=[1,(2,3,4),5]
a,(b,c,d),e=lst
print(a,b,c,d,e)
_,(*_,val),*_=lst
print(val)
_,[*_,val],*_=lst
print(val)
key,_,val=‘JAVA_HOME=/usr/bin‘.partition(‘=‘)
print(key)
print(val)
_
的使用,会更加便利!原文:https://www.cnblogs.com/gnuzsx/p/12732889.html