• 集合及深浅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来说,两个是完全独立的,改变任意一个的任何元素(无论多少层),另一个绝对不改变。
    
    
    


     


     
     
     
     
  • 相关阅读:
    微信公众号开发(一)——环境搭建
    Spring中@Async-异步处理
    SSL/TLS安全评估-查看访问的网址支持哪些协议等
    SSL异常javax.net.ssl.SSLHandshakeException: Received fatal alert: handshake_failure
    Java代码自动部署
    SQL优化技巧
    idea2019.2 svn 忽略文件问题
    Remote System Explorer Operation在eclipse后台一直跑 解决办法
    JPA project Change Event Handler问题解决
    MySQL按首字母查询
  • 原文地址:https://www.cnblogs.com/liusouthern/p/8086410.html
Copyright © 2020-2023  润新知