zoukankan      html  css  js  c++  java
  • Python基础(列表中变量与内存关系)

    在Python中,copy的是内存地址,引用的是列表的引用地址,列表里存的是各个元素的地址

    例如:

    name = [1,2,3,4,['xfxing','summer',6]]
    n2 = name.copy()
    name[1] = -2
    name[4][0] = "shell"
    name[4][2] =-6
    print(name)
    print(n2)
    View Code

    结果为:

    name = [1,2,3,4,['xfxing','summer',6]]

    n2 = name.copy() copy的是name中列表的内存地址
    name[1] = -2 内存里开辟一个新空间给-2
    name[4][0] = "shell" 列表里开辟一个新的空间存放shell,并把它给到name[4][0]
    name[4][2] =-6 列表里开辟一个新的空间存放-6,并把它给到name[4][1]
    print(name)
    print(n2) 2不会被垃圾回收器回收,n2中copy的内存地址会继续使用

    通过id()可以查看它们的内存地址


    列表中的元素地址没变,列表中的内存地址也不会发生改变

    (如 id(name[3] id(n2[3]))

    列表中的元素地址发生改变,列表的内存地址也将改变

    (如 id(name[1] id(n2[1]))

  • 相关阅读:
    深入 HBase 架构解析(2)
    [HEOI2012]朋友圈
    图论常用概念整理
    [COGS2175][SDOI2012]象棋-二分图最大权匹配
    KMP算法
    数据结构部分整理
    最小费用最大流学习笔记
    动态开点线段树
    Splay 模板
    C++ P1164 小A点菜
  • 原文地址:https://www.cnblogs.com/xfxing/p/8687111.html
Copyright © 2011-2022 走看看