zoukankan      html  css  js  c++  java
  • python notice4

    1.基础数据类型的补充

      "-".join(list)  把列表元素用-连接成字符串,“-”可以换成任意内容

      “-”.join(str)  把字符串中的内容用-分割,“-”可以换成任意内容

    2.列表和字典的删除

      对于列表不能在for循环时删除列表,因为索引会跟着改变。

      对于字典也不能在for循环时删除列表。

      要想循环删除,首先把要删除的内容记录到一个新列表中,然后再循环删除列表或字典中的内容

      eg:li = [11, 22, 33, 44]
        del_li = []
        for e in li:
          del_li.append(e)
        for e in del_li:
          li.remove(e)
        print(li)  #[],删除了列表中所有元素

    3.dict.formkey()

      字典的属性,通过列表创建一个新的字典。前面列列表中的每一项都会作为key, 后⾯面列表中的内容作为value。  注:每个key对应的value都一样,即公用一个value列表;当修改其中一个key的value列表时,其他key对应的value列表都会跟着改变,因为所有的key公用同一个value列表。

      eg:dic = {'k1': 'alex', 'k2': 'wusir', 's1': '⾦⽼板'}
        dic_del_list = []
        # 删除key中带有'k'的元素
        for k in dic:
          if 'k' in k:
            dic_del_list.append(k)
        for el in dic_del_list:
          del dic[el]
        print(dic)  #{"si":"金老板"},剩下key中不带“k”的键值对。

    4.类型转换

      元组 => 列表   list(tuple)

      列表 => 元组   tuple(list)

      list=>str   str.join(list)

      str=>list   str.split()

      转换成False的数据:  0,'',None,[],(),{},set() ==> False

    5.set集合(终点在去重,其他了解即可)

      set集合是python的一个基本数据类型,不常用。set中的元素特点:无序的、不重复的(可用来去重。)、可hash的(int,str,tuple,bool),set就是dict类型的数据,只保存key,不保存value。set用{}表示。

      0.去重

      列表去重eg:

        lst = [45, 5, "哈哈", 45, '哈哈', 50]
        lst = list(set(lst)) # 把list转换成set, 然后再转换回list
        print(lst)

      注:set集合中的元素是可hash的,但是set本身不可hash,故set是可变的,可以进行增删改查。

      令:s ={11,22,33}

      1.增

        s.add(key)

        s.update(“123”)  迭代更新 #s = {11,22,33,1,2,3}  注:int型不可以迭代更新,故加引号为str型。

        s.update([1,2,3])  #s = {11,22,33,1,2,3}

      2.删除

        s.pop()  随机删除一个key

        s.remove(key)  如果key存在会直接删除;若key不存在,会报错。

        s.clear  清空set。

      3.删除

        set中没有索引,无法定位,可以先删除,再添加。

        s.remove(key)

        s.add(key)

      4.查

        set是可迭代对象,故可以进行for循环

        for el in s :

          print(el)

      5.其他操作

        两个以上的set集合可以进行交集、并集、差集等操作。因不常用,这里不再赘述。

    6.深浅拷贝

      1.listdictset赋值
        对于list,dict,set来说,直接赋值,其实是直接把内存地址给变量,并不是复制内容,所以对某一个进行修改时,另一个也会改变。

      eg:lst1 = ["⾦毛狮王", "紫衫龙王", "⽩眉鹰王", "⻘翼蝠王"]
        lst2 = lst1
        print(lst1)
        print(lst2)
        lst1.append("杨逍")
        print(lst1)
        print(lst2)
          结果:
            ['⾦毛狮王', '紫衫龙王', '⽩眉鹰王', '⻘翼蝠王', '杨逍']
            ['⾦毛狮王', '紫衫龙王', '⽩眉鹰王', '⻘翼蝠王', '杨逍']

      2.浅拷贝

        .copy()  只会拷贝第一层,第二层不会拷贝。

        eg:list1 = [11,22,33,aa]

          list2 = list.copy()  或者list2 =llist1[:]

         

        浅拷贝就拷贝第一层,只拷贝了list1,list1和list2的内存地址不一样。当改变list1时,list1和list2内容不一样;但当内存地址aa的内容变时,list1和list2依然一样。

      3.深拷贝

        在前面调用import copy模块

        格式:import copy

          list2 = copy.deepcopy(list1)

        深拷贝就是元素以及元素内部的元素全部拷贝了一份,相当于在内存中开辟了两个大空间,及各个子元素的小空间,不会产生修改一个另一个跟着改变的情况。

        

  • 相关阅读:
    小菜读书---《程序员修炼之道–从小工到专家》
    小菜读书--《大话设计模式》
    darknet-mini:带注释的darknet简化版,助你深入理解YOLO
    如何使用VLC进行视频录像
    海康相机打开的方法
    YOLOv5训练自己的数据集(超详细完整版)
    用GANs来做数据增强
    torch ----------->>>>rknn
    Linux下的tar压缩解压缩命令详解
    小缺陷目标检测网络--PCB缺陷检测—TDD-net
  • 原文地址:https://www.cnblogs.com/xiaolu-fan/p/11181498.html
Copyright © 2011-2022 走看看