欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程语言 > python >内容正文

python

python怎么查看列表_Python 小白,关于对于列表的+=操作不明白,查了半天也不知道怎么查,并且查询无果,请人指点?...

发布时间:2024/10/8 python 53 豆豆
生活随笔 收集整理的这篇文章主要介绍了 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 小白,关于对于列表的+=操作不明白,查了半天也不知道怎么查,并且查询无果,请人指点?...的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。