• python 集合和深浅copy


    #1数据类型的补充
    #2.集合set
    #3.深浅copy

    补充:
    str --> bytes s.encode('gbk')
    bytes --> str s.decode('gbk')

    1.数据类型的补充.
    str :
    isspace 判断是不是空格.
    list:
      再循环一个列表时候,进行删除的动作时候,容易出错.一旦删除索引将会改变,所以才会报错
    1,反向删除
    2.增加替换
    3.增加删除,两个for循环
    4.步长删除.
    li = ['老男孩', 'python', 'alex', 'wusir', 'egon', 'ritian', '女神']
    dict:
    由于索引和无序的原因,对字典进行循环增删的时候会报错,单独建立一个列表,将要删除的元素单独列到列表中,再进行字典删除,才能避免报错。

    元祖:
    str --> 元祖 强行转化
    元祖 --> str ''.join(tuple) #所有可迭代的对象都能够转化为str,利用join


    2.集合(set)
    set = {11,22,33,44,55}
    主要两个大功能:
    1,由于集合自动去重复的功能,转化为set后能够直接去掉重复的内容
    2.集合交集并集差集超集子集
    1 set = {2,4,6,8,9,1,3,9,7}
    2 set2 = {11,12,13,15,16,17}
    3 
    4 print(set & set2)#交集
    5 print(set ^ set2)#反交集
    6 print(set | set2)#并集
    7 print(set - set2)#差集
    8 print(set.issubset(set2))#子集
    9 print(set.issuperset(set2))#超集
    

      #增:

            #add添加元素,
    set = {2,4,6,8,9,1,3,9,7}
    set2 = {11,12,13,15,16,17}
    
    set.add('w')
    print(set)
    #{1, 2, 3, 4, 6, 7, 8, 9, 'w'}

    #update 迭代添加
    set = {2,4,6,8,9,1,3,9,7}
    set.update('wsb')
    print(set)
    #{1, 2, 3, 4, 6, 7, 8, 9, 's', 'b', 'w'}



    #删:
    #pop() 无需随机删除(不确定)
    set = {2,4,6,8,9,1,3,9,7}
    set.pop()
    print(set)
    #{2, 3, 4, 6, 7, 8, 9}

    #clear()清空如同列表和字典

    #del ()整个删除

    #remove() 元素删除
    1 set = {2,4,6,8,9,1,3,9,7}
    2 
    3 set.remove(2)
    4 
    5 print(set)
    6 
    7 #{1, 3, 4, 6, 7, 8, 9}

          #无法修改

    #查

            #for 循环查看




    3.深浅copy
    赋值运算:
    1 l1 = [1,2,3]
    2 
    3 l2 = l1
    4 
    5 l2.append(111)
    6 
    7 print(l1,l2)
    8   结果相同

    浅copy:

    1 l1 = [1,2,[1,2,3],3]
    2 
    3 l2 = l1[:]/l1.copy
    4 
    5 l2[2].append(111)
    6 
    7 l2.append(111)
    8 
    9 print(l1,l2)
         
    此时是浅copy 不是赋值运算.

    深copy:
    1 import copy
    2 
    3 l1 = [1,2,[1,2,3],3]
    4 
    5 l2 = copy.deepcopy(l1)
    6 
    7 l2[2].append(111)
    8 
    9 print(l1,l2)

    赋值运算是完全公用内存地址
    浅copy是在第一层不会公用地址,而在多层的情况下除开第一层,其它层都会公用一个内存地址
    深copy则是完全独立的一个新的储存位置,不会公用地址.
  • 相关阅读:
    空指针调用函数【可以成功】
    静态库的pdb
    构造、析构、虚函数使用小细节
    Hutool,一个贼好用的 Java 工具类库,用过都说好~
    kk-anti-reptile是,适用于基于spring-boot开发的分布式系统的反爬虫组件。
    对于thinkpad 触摸板双击失灵
    tomcat7-maven-plugin 启动的服务如何关闭
    怎样关闭占用80端口的pid为4的进程
    C# 时间比较
    一道sql面试题
  • 原文地址:https://www.cnblogs.com/wpcbk/p/8652204.html
Copyright © 2020-2023  润新知