• 深拷贝、浅拷贝、集合


    #set(集合)天生就有去重功能,集合也是无序的
    import copy
    l=[1,3,2,4,5,6,8]
    l2=copy.deepcopy(l) #深拷贝,内存地址不一样
    l2=l #浅拷贝,内存地址# 查看内存地址
    print(id(l))
    print(id(l2))


    #结果:内存地址是一样的,属于浅拷贝;修改1个另外1个也会修改;
    #浅拷贝和深拷贝的区别就是深拷贝会重新开辟一块内存地址;

    #循环删除的时候,会出现下标错误的情况,例如:第一轮循环到下标0,不符合要求,
    删除了,那么第二个下标1实际上就变成了下标0,但在循环的时候由于下标0已经循环过一次了,就会从下标1开始继续循环;需要用深拷贝
    for i in l:
    if i%2!=0:
    l2.remove(i)
    print(l2)

    # s=set() #空集合
    # s2=set('123456')
    # s3={'1','2','3','4','5','6','7','8','9'}
    # 交集、并集、差集
    # 就是两个集合相同的地方
    # print(s3 & s2) #取交集
    # print(s3.intersection(s2)) #取交集
    #
    # #并集
    # #把两个集合合并在一起,然后去重
    # print(s2|s3) #取并集
    # print(s2.union(s3)) #取并集
    #
    # #差集
    # #取一个集合存在,另一个不存在的元素
    # s4={1,2,3}
    # s5={1,4,6}
    # print(s4-s5) #取差集

    #对称差集
    # print(s4^s5) #对称差集
    # print(s4&s5) #交集
    # print(s4|s5) #并集

    # s4.add('ss') #加元素
    #
    # s4.pop() #随机删除一个
    #
    # s4.remove(2) #指定删除哪个
    #
    # s4.update({1,2,3}) #增加另1个集合
    #
    # s4.isdisjoint()
    # print(s4)



  • 相关阅读:
    java基础(二):补充
    java基础(二):变量和数据类型
    C基础系列(一)
    java基础(一)
    循环小数(Repeating Decimals)
    DNA序列(DNA Consensus String)
    sqlserver~创建函数
    docker简介和安装
    JMeter(6)、实现Java请求
    JMeter(5)、测试数据库
  • 原文地址:https://www.cnblogs.com/ruijie/p/10161580.html
Copyright © 2020-2023  润新知