• 《Python》 基础数据类型补充和深浅copy


        元组:

          如果元组中只有一个数据,且没有逗号,则该‘元组’数据类型与里面的数据类型一致

        列表:

          列表之间可加不可减,可跟数字相乘

            l1=['wang','rui']

            l2=['chen']

            l3=l1+l2

            print(l3)

        将列表中索引为奇数的元素,全部删除:

          l1=[11,22,33,44,55,66,77,88]
          l2=[]
          (1)del l1[1::2]
             print(l1)
          (2)for i in l1:
           if i % 2 ==1:
          l2.append(i)
               l1=l2
            print(l1)
          (3)for i in range(len(l1)-1,-1,-1):
            if i % 2==1:
           l1.pop(i)
                print(l1)
      在循环一个列表时,如果对列表中的某些元素进行删除,
      那么此元素后面的所有元素就会向前进一位,他们的索引就会发生变化。
      在循环一个列表时,最好不要对此列表进行改变大小(增删)的操作。
      字典:
        fromkeys():创建一个新的字典  只改变key,不改变values
        dic1 = dict.fromkeys([1,2,3],'alex')
        print(dic1)
      面试题:创建字典的方式
        1,
        dic = {'name':'alex'}
        2,
         dic = dict({'name':'alex'})
         print(dic)
        3, fromkeys()

      陷阱:
        dic1=dict.fromkeys([1,2,3],[])
        print(dic1)
        dic1[1].append(666)
        print(dic1)
        print(id(dic1[1]))=print(id(dic1[2]))=print(id(dic1[3]))

    二、集合set
      set:
        集合要求里面的元素必须是不可变的数据类型,但是集合本身是可变的数据类型
        集合里面的元素不重复,无序。
        用途:去重、关系测试

      list去重
        l1=[1,2,3,4,1,1,2,3]
        set1=set(l1)
        print(set1)

      集合的增删:
        set1={'yang','wang',1,2,3}
        set1.add('zhang')  增
        print(set1)  
        set1.update('abc')  迭代增加
        print(set1)
        set1.remove(1)  删 元素
        print(set1)
        set1.pop()    随机
        print(set1)
        set1.clear()    清空
        print(set1)
        del set1    删除
        print(set1)

      关系测试:
        set1={1,2,3,4,5}
        set2={1,2,3,6,7}
        print(set1&set2)  交集
        print(set1.intersection(set2))
        print(set1|set2)  并集
        print(set1.union(set2))
        print(set1^set2)  反交集
        print(set1.symmetric_difference(set2))
        print(set1-set2)  差集
        print(set2.difference(set1))

        set3={1,2,3}
        set4={1,2,3,4,5}
        print(set3<set4)  子集
        print(set3.issubset(set4))
        print(set3>set4)  超集
        print(set3.issuperset(set4)
        set1={1,2,3}
        set2=frozenset(set1)  #冻
        print(set2)
        frozenset 不可变的数据类型


    三、深浅copy

       浅copy:
        l1=[1,2,3,4,[22,1]]
        l2=l1.copy()
        l1.append(999)
        print(l2)
        l1[-1].append(999)
        print(l2)

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

      应用场景:
        深copy:完全独立的copy一份数据,与原数据无关系。
        浅copy:如果一份数据,第二层开始,你想与原数据进行共用。

      面试题:
        切片属于浅copy
     
  • 相关阅读:
    nodejs项目,vue开发环境,可以配置,域名访问模式嘛,这样线上项目就可以不用打包来访问了
    windows 开机自动运行nodejs项目 pm2方法实现
    vue style中变量样式
    配置域名可以访问vue编译后都项目,不用打包通过域名也可访问
    putty 终端 ctrl + c失效
    php 往数组前,后添加元素
    js 二维数组排序
    vue中vfor写在template上,加key提示错误
    mongodb 终端自己常用命令
    vue项目配置 域名和host.
  • 原文地址:https://www.cnblogs.com/yzh2857/p/9457010.html
Copyright © 2020-2023  润新知