zoukankan      html  css  js  c++  java
  • python基础-深浅copy

    一 深浅copy

    #赋值运算,它们公用一个列表
    
    a = [1,2,3]
    b = a 
    a.append(666)
    print(a,b)     #[1, 2, 3, 666] [1, 2, 3, 666]
    # 对于浅copy来说,第一层创建的是新的内存地址,而从第二层开始
    # 指向的都是同一个内存地址,所以,对于第二层以及更深的层数来说,保持一致性
    # ## 浅copy: 创建另一个内存地址
    l1 = [1,2,3]
    l2 = l1.copy()
    l1.append(666)
    print(l1,l2)   #[1, 2, 3, 666] [1, 2, 3]
    print(id(l1),id(l2))
    
    l1 = [1,2,3,[22,33]]
    l2 = l1.copy()
    l1[-1].append(666)
    print(l1,l2)
    # [1, 2, 3, [22, 33, 666]] [1, 2, 3, [22, 33, 666]]
    
    print(id(l1),id(l2))   #第一层内存地址不一致
    #4364259464 4364322504
    
    print(id(l1[-1]),id(l2[-1]))  #第二层内存地址一致
    #4364323976 4364323976

    对于深copy来说,两个是完全独立的了
    import copy
    l1 =  [1,2,3,[22,33]]
    l2 = copy.deepcopy(l1)
    print(l1,l2)
    #[1, 2, 3, [22, 33, 666]] [1, 2, 3, [22, 33]]
    print(id(l1),id(l2))  #第一层内存地址不一致
    #4364233288 4364148872
    print(id(l1[-1]),id(l2[-1]))  # 第二层内存地址也不一致
    #4364213448 4364233224
  • 相关阅读:
    吃货联盟订餐系统
    第一章课后习题
    hostapd阅读(openwrt)-1
    通过C语言获取MAC地址(转)
    OpenWrt 编译分割
    ubuntu 12.04无盘工作站
    WEB前端性能优化-如何提高页面加载速度
    HTML6
    easyui 根据值查找匹配
    收藏的网站
  • 原文地址:https://www.cnblogs.com/wangph/p/8830887.html
Copyright © 2011-2022 走看看