请教一个问题先看下面的代码x=1y=2tmp=xx=yy=tmpprint(x,y)代码的输出是:21再看下面的代码:x=1y=2x,y=y,xprint(x,y)代码的输出是:21x,y=y,这段代码背后的意思是解构和封装PythonencapsulationIn[1]:t=1,2In[2]:tOut[2]:(1,2)In[3]:type(t)Out[3]:tuple#定义一个可以省略括号的元组In[4]:t1=(1,2)In[5]:t2=1,2#t1和t2等价In[6]:t1Out[6]:(1,2)In[7]:t2Out[7]:(1,2)so封装的结果必须是元组。x,y=y,x的右边的代码会被封装成(y,x)Python解构基本解构In[8]:lst=[1,2]In[9]:first,second=lstIn[10]:print(first,second)12按照元素的先后顺序,将线性结构lst的元素赋值给变量first,second加星号解构In[11]:lst=list(range(5))In[12]:head,*tail=lstIn[13]:headOut[13]:0In[14]:tailOut[14]:[1,2,3,4]In[15]:*lst2=lst#左边必须有一个星号ThevariableFile"",line1*lst2=lst^SyntaxError:starredassignmenttargetmustbeinalistortupleIn[16]:*head,tail=lstIn[17]:headOut[17]:[0,1,2,3]In[18]:lstOut[18]:[0,1,2,3,4]In[19]:tailOut[19]:4In[20]:head,*m1,*m2,tail=lst#Asterisks不能有超过一个文件"",line1head,*m1,*m2,tail=lst^SyntaxError:assignmentIn[21]中有两个带星号的表达式:v1、v2、v3、v4、v5,v6,v7=lst#左边的变量个数不能超过右边的元素个数------------------------------------------------------------------------ValueError回溯(最近调用last)in()---->1v1,v2,v3,v4,v5,v6,v7=lstValueError:notenoughvaluestounpack(expected7,got5)In[22]:v1,v2=lst#左边的变量个数不能小于右边的元素个数-----------------------------------------------------------------------ValueErrorTraceback(最近一次调用)in()---->1v1,v2=lstValueError:值太多解包(预期2)可以概括为:元素按顺序赋值给变量变量和元素必须匹配带星号的变量,可接受任意数量的带星号的元素带星号的变量不能单独出现多级解构解构支持多级In[23]:lst=[1,(2,3),5]In[24]:_,v,*_=lst#v解析成(2,3)In[25]:vOut[25]:(2,3)In[26]:_,val=v#v可以进一步解构In[27]:valOut[27]:3In[28]:_,(_,val),*_=lst#可以一步解构In[29]:valOut[29]:3In[30]:_,[*_,val],*_=lst#中间部分分解成一个listIn[31]:valOut[31]:3In[32]:_,_,val,*_=lst#(2,3)被解析成第二个_In[33]:valOut[33]:5Pythonunderscoreuse使用单个下划线_表示变量被丢弃,这是Python的约定。单个下划线也是合法的Python标识符。但通常不要用单个下划线表示一个有意义的变量,如果它不打算被丢弃的话。可以理解为约定俗成。解构和封装当使用非常复杂的数据结构和多层嵌套的线性结构时,可以使用解构来快速提取其中的值,非常方便。例如下面的使用方法In[1]:key,_,value='IlovePython'.partition('love')In[2]:keyOut[2]:'I'In[3]:valueOut[3】:‘巨蟒’记得给我点赞哦!对计算机各个方向的视频课程和电子书,从入门、进阶、实用进行了认真梳理,并按照目录进行合理分类。你总能找到你需要的学习资料。你在等什么?立即关注并下载!!!念念不忘,必有回响,朋友们,请点个赞,万分感谢。我是职场亮哥,四年工作经验的YY高级软件工程师,拒绝当领导的斜杠程序员。听我说,我进步很大。如果有幸帮到你,请给我一个【点赞】,给我一个关注,如能评论鼓励,将不胜感激。职场凉阁文章列表:更多文章我的所有文章和回答均与版权保护平台合作,版权归职场凉阁所有。未经授权转载必究!