Coder Social home page Coder Social logo

Comments (3)

lambdaplus avatar lambdaplus commented on July 22, 2024

In [13]: a = [9, 7, 5, 3, 1]

In [14]: b = a

In [15]: b
Out[15]: [9, 7, 5, 3, 1]

In [16]: a.reverse()

In [17]: a
Out[17]: [1, 3, 5, 7, 9]

In [18]: b
Out[18]: [1, 3, 5, 7, 9]

上面的a和b其实是指向的同一个内存地址,修改任一个的值,都会影响到另一个。

In [26]: a.__str__
Out[26]: <method-wrapper '__str__' of list object at 0x7fc1f7f68988>

In [27]: b.__str__
Out[27]: <method-wrapper '__str__' of list object at 0x7fc1f7f68988>

下面是n是m的拷贝,m、n内存地址不同。

In [24]: m.__str__
Out[24]: <method-wrapper '__str__' of list object at 0x7fc1f7f6fdc8>

In [25]: n.__str__
Out[25]: <method-wrapper '__str__' of list object at 0x7fc1f7e6bdc8>
In [19]: m = [0, 2, 4, 6, 8]

In [20]: n = m.copy()

In [21]: m.reverse()

In [22]: m
Out[22]: [8, 6, 4, 2, 0]

In [23]: n
Out[23]: [0, 2, 4, 6, 8]

再深一点就是__深拷贝和浅拷贝__了
个人愚见。

from starterlearningpython.

qiwsir avatar qiwsir commented on July 22, 2024

有道理。很多高级语言,都是将某些基本类型和由基本类型组合的类型,以不同的存储方式处理。

2016-05-05 17:04 GMT+08:00 lambdaplus [email protected]:


In [13]: a = [9, 7, 5, 3, 1]

In [14]: b = a

In [15]: b
Out[15]: [9, 7, 5, 3, 1]

In [16]: a.reverse()

In [17]: a
Out[17]: [1, 3, 5, 7, 9]

In [18]: b
Out[18]: [1, 3, 5, 7, 9]

上面的a和b其实是指向的_同一个内存地址_,修改任一个的值,都会影响到另一个。

In [26]: a.str
Out[26]: <method-wrapper 'str' of list object at 0x7fc1f7f68988>

In [27]: b.str
Out[27]: <method-wrapper 'str' of list object at 0x7fc1f7f68988>


下面是n是m的拷贝,m、n内存地址不同。

In [24]: m.str
Out[24]: <method-wrapper 'str' of list object at 0x7fc1f7f6fdc8>

In [25]: n.str
Out[25]: <method-wrapper 'str' of list object at 0x7fc1f7e6bdc8>

In [19]: m = [0, 2, 4, 6, 8]

In [20]: n = m.copy()

In [21]: m.reverse()

In [22]: m
Out[22]: [8, 6, 4, 2, 0]

In [23]: n
Out[23]: [0, 2, 4, 6, 8]

再深一点就是__深拷贝和浅拷贝__了
个人愚见。


You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub
#98 (comment)

QiWei

from starterlearningpython.

xiaoyan94 avatar xiaoyan94 commented on July 22, 2024

谢谢!

from starterlearningpython.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.