zoukankan      html  css  js  c++  java
  • 集合及深浅copy

    集合set={}               

    集合是无序的,不重复的数据集合,它里面的元素是可哈希的(不可变类型),但是集合本身是不可哈希(所以集合做不了字典的键)的。以下是集合最重要的两点:

    1.去重,把一个列表变成集合,就自动去重了。

    2.关系测试,测试两组数据之前的交集、差集、并集等关系。

    深浅copy

    1.赋值运算

    # l1 = [1,2,3,['cat','dog']]
    # l2=l1
    # l1[0]=4
    
    #print(l1) = [4, 2, 3, ['cat', 'dog']]
    #print(l2) = [4, 2, 3, ['cat', 'dog']]
    
    # l1[3][0]='big'
    # print(l1) = [1, 2, 3, ['big', 'dog']]
    # print(l2) = [1, 2, 3, ['big', 'dog']]
    对于赋值运算来说,l1与l2指向的是同一个内存地址,所以他们是完全一样的。


    2.浅copy

    # l1 = [1,2,3,['cat','dog']]
    # l2=l1.copy()
    
    # print(l1,id(l1))=[1, 2, 3, ['cat', 'dog']] 35482376
    # print(l2,id(l2))=[1, 2, 3, ['cat', 'dog']] 35523464
    
    # l1[0]=5
    # print(l1,id(l1[0)=[5, 2, 3, ['cat', 'dog']] 1564828000
    # print(l2,id(l1[0])=[1, 2, 3, ['cat', 'dog']]1564827872
    
    # l1[3][1]=5
    # print(l1,id(l1[3][1]))=[1, 2, 3, ['cat', 5]] 1564828000
    # print(l2,id(l2[3][1]))=[1, 2, 3, ['cat', 5]] 1564828000
    对于浅copy来说,第一层创建的是新的内存地址,而从第二层开始,指向的都是同一个内存地址,所以,对于第二层以及更深的层数来说,保持一致性.

    3.深copy
    
    
    # l1 = [1,2,3,['barry','alex']]
    # l2 = copy.deepcopy(l1)
    
    # print(l1,id(l1))  # [1, 2, 3, ['barry', 'alex']] 2915377167816
    # print(l2,id(l2))  # [1, 2, 3, ['barry', 'alex']] 2915377167048
    
    # l1[1] = 222
    # print(l1,id(l1))  # [1, 222, 3, ['barry', 'alex']] 2915377167816
    # print(l2,id(l2))  # [1, 2, 3, ['barry', 'alex']] 2915377167048
    
    # l1[3][0] = 'wusir'
    # print(l1,id(l1[3]))  # [1, 222, 3, ['wusir', 'alex']] 2915377167240
    # print(l2,id(l2[3]))  # [1, 2, 3, ['barry', 'alex']] 2915377167304
    
    对于深copy来说,两个是完全独立的,改变任意一个的任何元素(无论多少层),另一个绝对不改变。
    
    
    


     


     
     
     
     
  • 相关阅读:
    案例3:歌舞娱乐放映游艺建筑防火案例分析(一)
    案例2:丙类仓库建筑防火案例分析
    第三篇 第八章泡沫灭火系统(二)
    第三篇 第七章气体灭火系统(三)
    FreeMarker 语法 null 的处理
    FreeMarker 语法 date 类型处理
    FreeMarker 语法 list
    FreeMarker 语法 访问 pojo 的属性
    mysql 去重
    FreeMarker hello
  • 原文地址:https://www.cnblogs.com/liusouthern/p/8086410.html
Copyright © 2011-2022 走看看