Python编码、集合set、深浅拷贝

时间:2021-08-08 21:59:58

编码 : a.encode(' ')     windows 默认编码GBK

    • ASCII : 最早的编码. ⾥⾯有英⽂⼤写字⺟, ⼩写字⺟, 数字, ⼀些特殊字符.没有中⽂,
      • 8个01代码, 8个bit, 1个byte
    • UNICODE: 万国码, ⾥⾯包含了全世界所有国家⽂字的编码.
      • 中文: 32个bit, 4个byte,
      • 英文: 16个bit,2个byte
    • UTF-8: 可变⻓度的万国码. 是unicode的⼀种实现. 最⼩字符占8位
      • 1.英⽂: 8bit 1byte
      • 2.欧洲⽂字:16bit 2byte
      • 3.中⽂: 24bit 3byte
    • GBK: 中⽂国标码, ⾥⾯包含了ASCII编码和中⽂常⽤编码.
      • 中文:16个bit, 2个byte
      • 英文:8个bit,1个byte
    • 综上, 除了ASCII码以外, 其他信息不能直接转换
    • 解码 : a.decode(' ') 用什么编就用什么解

set 集合 {} 无序

  • 集合天然去重
  • 增 :
    • s.add
    • s.update 迭代添加
  • 删 :
    • s.pop( ) 随机删除 返回删除值
    • s.clear( ) 清空 获取到的是 set( )
    • del s 删除整个集合
    • s.remove( ) 删除指定元素(通过元素)
  • 改 :
    • 先删再增
  • 查 :
    • for i in set:
      • print(i)
  • 其他操作 :
    • 交集 :
      • s & s1
      • s.intersection(s1)
    • 并集 :
      • s | s1
    • 差集 :(前面集合减后面的集合 输出前面没有的)
      • s1 - s
    • 反交集 : (去除重复的元素,剩余的结合)
      • s ^ s1
    • 子集 :
      • s < s1
    • 冻结
      • s = frozenset((1,2,3))
      • dic = {s:'1,2,3'}
      • print(dic)

深浅拷贝

  • 浅拷贝
    • 只拷贝第一层元素
    • 对于list, set, dict来说, 直接赋值. 其实是把内存地址交给变量. 并不是复制⼀份内容. 所以. lst1的内存指向和lst2是⼀样的. lst1改变了, lst2也发⽣了改变 
  • 深拷贝 lst1 = copy.deepcopy(lst)
    • 深度拷贝. 把元素内部的元素完全进行拷贝复制. 不会产⽣⼀个改变另⼀个跟着 改变的问题 补充⼀个知识点: