zoukankan      html  css  js  c++  java
  • 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则是完全独立的一个新的储存位置,不会公用地址.
  • 相关阅读:
    POJ 1953 World Cup Noise
    POJ 1995 Raising Modulo Numbers (快速幂取余)
    poj 1256 Anagram
    POJ 1218 THE DRUNK JAILER
    POJ 1316 Self Numbers
    POJ 1663 Number Steps
    POJ 1664 放苹果
    如何查看DIV被设置什么CSS样式
    独行DIV自适应宽度布局CSS实例与扩大应用范围
    python 从入门到精通教程一:[1]Hello,world!
  • 原文地址:https://www.cnblogs.com/wpcbk/p/8652204.html
Copyright © 2011-2022 走看看