• 集合与深浅拷贝


    一、集合

      1.定义

        元素的集,同一集合下,元素不相同。集合有交集并集等操作。集合是可变的数据类型,但是集合内的元素必须是不可变的。

    set1={1,2,3,4}                      #集合内元素不重复
    set2={(1,2),(3,2),('1','2','3')}    #集合内元素不可变
    set3=set1                           #集合的定义可以用直接赋值
    print(set1)
    print(set2)
    print(set3)
    #打印:
    # {1, 2, 3, 4}
    # {(1, 2), (3, 2), ('1', '2', '3')}
    # {1, 2, 3, 4}

      2.操作

    set1.add("12")                      #增加有add和update
    print(set1)
    set2.update((4,7))
    print(set2)
    #打印
    # {1, 2, 3, 4, '12'}
    # {(1, 2), ('1', '2', '3'), (3, 2), 4, 7}
    print(set1.pop() )  #随机删除一个元素,有返回值
    print(set1)
    set2.remove((1,2))  #删除指定元素
    print(set2)
    set3.clear()        #使成为空集
    print(set3,type(set3))
    del set3            #删除集合
    
    #打印
    # 1
    # {2, 3, 4, '12'}
    # {(3, 2), 4, 7, ('1', '2', '3')}
    # set() <class 'set'>
    #
    for i in set1:
        print(i)        #集合内元素也可以迭代,所以可以用for循环打印
    #求交集
    set1.add((3,2))
    set4=set1 & set2
    print(set4)
    set5=set1.intersection(set2)
    print(set5)
    # 打印
    # {(3, 2)}
    # {(3, 2)}
    #求并集
    set6=set1.union(set2)
    print(set6)
    #{(3, 2), 4, 7, ('1', '2', '3')}
    #求并集
    set6=set1.union(set2)
    print(set6)
    #{(3, 2), 4, 7, ('1', '2', '3')}
    set7=set1 | set2
    print(set7)
    #{(3, 2), 4, 7, ('1', '2', '3')}
    #求并集-交集(补集)
    set8={1,2,3,4,5,7,6}
    set9={5,6,7,10,11,12}
    set10=set8 ^ set9
    print(set10)
    set11=set8.symmetric_difference(set9)
    print(set11)
    # {1, 2, 3, 4, 10, 11, 12}
    # {1, 2, 3, 4, 10, 11, 12}
    #求一个集合-交集
    set12=set8-set9
    print(set12)
    set13=set8.difference(set9)
    print(set13)
    # {1, 2, 3, 4}
    # {1, 2, 3, 4}
    #集合不可以加,但是可以减
    #判断一个集合是否是另一个集合的子集或超集
    print(set8 < set9)
    print(set10 < set8)
    print(set12 < set8)
    print(set8 > set13)
    a=set8.issuperset(set12)
    b=set8.issubset(set12)
    c=set13.issuperset(set9)
    d=set13.issubset(set9)
    print(a)
    print(b)
    print(c)
    print(d)
    # False
    # False
    # True
    # True
    # True
    # False
    # False
    # False
    #利用集合的性质去重
    li=[1,1,2,3,4,4,5,6,7,7]
    print(li,type(li))
    se=set(li)
    print(se,type(se))
    li=list(se)
    print(li,type(li))
    # [1, 1, 2, 3, 4, 4, 5, 6, 7, 7] <class 'list'>
    # {1, 2, 3, 4, 5, 6, 7} <class 'set'>
    # [1, 2, 3, 4, 5, 6, 7] <class 'list'>

    二、深拷贝与浅拷贝

    #浅拷贝,只拷贝地址,样本变了,拷贝内容也变了
    listm=[1,2,3,4,5,6,6]
    listx=listm
    print(listx)
    listm.append(9)
    print(listm)
    print(listx)
    #深拷贝,拷贝内容,样本变了不影响拷贝内容
    #但要记住import copy,才能调用深拷贝方法
    import copy
    listy=copy.deepcopy(listm)
    listm.append(10)
    print(listm)
    print(listy)
    #结果
    # [1, 2, 3, 4, 5, 6, 6]
    # [1, 2, 3, 4, 5, 6, 6, 9]
    # [1, 2, 3, 4, 5, 6, 6, 9]
    # [1, 2, 3, 4, 5, 6, 6, 9, 10]
    # [1, 2, 3, 4, 5, 6, 6, 9]

      

  • 相关阅读:
    FCN详解
    4、2支持向量机SVM算法实践
    Matplotlib
    4、Caffe其它常用层及参数
    6、TensorFlow基础(四)队列和线程
    0、weka学习与使用
    5、Tensorflow基础(三)神经元函数及优化方法
    4、TensorFlow基础(二)常用API与变量作用域
    elsa-core:4.ASP.NET Core Server with Elsa Dashboard
    elsa-core:3.elsa 服务
  • 原文地址:https://www.cnblogs.com/lowislucifer/p/10957290.html
Copyright © 2020-2023  润新知