python怎么查看列表_Python 小白,关于对于列表的+=操作不明白,查了半天也不知道怎么查,并且查询无果,请人指点?...
这两题涉及两个概念:赋值过程中的浅复制 VS. 深复制
修改自身的操作 VS. 返回新值的操作
x 是个列表,用Python的话说,属于引用类型,它本身是一个指向底层数据结构的引用,赋值给 y 时,传递的是这个引用,因此,y 和 x 等于共享了底层数据结构。我们把这种情况叫浅复制。
比如说,我们改一下 y 的值,x 的值也会受影响。y[0]=2
x
[2,2]
与之对应的是深复制,对于Python中的值类型,比如数值、字符串等,赋值的时候会直接复制一份底层数据,互相之间就不会受影响了。x=1
y=x
y=2
y
2
x
1
除了赋值过程,深复制与浅复制更需要注意的是函数传参的过程。传递一个引用对象作为参数,有可能会在函数运算时改变原对象状态,导致一些不好排查的bug。想要更详细的了解,可以搜索相关关键词。
第二个概念是修改自身的操作与返回新对象的操作。
同样是扩展列表,这两题结果不一样,是因为 += 号是修改自身的操作,这个操作等于是在 y 后面新增了两个元素,上面说过,x 和 y 在底层结构上是同一个,因此 x 就受影响了。
而另一题中,y=y+[3,4] 其实可以看成两步,第一步是相加,得到一个新的列表 [1,2,3,4] ,第二步是把这个新列表赋值给 y,这个赋值过程,实际上是让 y 指向了一个新的底层数据结构,和 x 指向的那个就区分开来了。
当然,需要指出的是,+= 其实也不是原子性的操作,不过这和这两题没什么关系,属于比较深入的内容,暂时可以不用关注。
搜索资料的问题,第一步是打开搜索引擎,第二步是输入关键词。了解一些基本概念之后,就知道该输入什么关键词了,不用着急。
怎么了解一些基本概念呢?还是推荐看一两本比较经典的书,所谓磨刀不误砍柴工。怎么知道哪些书比较经典呢?参考上一段,这里就不推荐了。
祝顺利!
总结
以上是生活随笔为你收集整理的python怎么查看列表_Python 小白,关于对于列表的+=操作不明白,查了半天也不知道怎么查,并且查询无果,请人指点?...的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: python模拟登陆 验证码el_pyt
- 下一篇: python连接池原理_python r