• Python基础学习笔记(五)


    一 常量池(小数据池)

    二 解码和编码

    三 基础数据补充

    四 set集合

    五 深浅拷贝

    一 常量池(小数据池)

      ⼩数据池: ⼀种数据缓存机制.也被称为驻留机制.各⼤编程语⾔中都有类似的东⻄.在⽹上搜索常量池,⼩数据池指的都是同⼀个内容.

      ⼩数据池只针对: 整数,字符串,布尔值.其他的数据类型不存在驻留机制

      在python中对-5到256之间的整数会被驻留在内存中. 将⼀定规则的字符串缓存. 在使⽤的时候, 内存中只会创建⼀个该数据的对象. 保存在⼩数据池中. 当使⽤的时候直接从⼩数据池中获取对象的内存引⽤. ⽽不需要创建⼀个新的数据. 这样会节省更多的内存区域.

      优点: 能够提⾼⼀些字符串, 整数的处理速度. 省略的创建对象的过程.
      缺点: 在'池'中创建或者插入新的内容会花费更多的时间.

      对于数字: -5~256是会被加到⼩数据池中的. 每次使⽤都是同⼀个对象.

      对于字符串:    

        1. 如果字符串的⻓度是0或者1, 都会默认进⾏缓存

        2. 字符串⻓度⼤于1, 但是字符串中只包含字⺟, 数字, 下划线时才会缓存    

        3. ⽤乘法的到的字符串.

          ①. 乘数为1, 仅包含数字, 字⺟, 下划线时会被缓存. 如果包含其他字符, ⽽⻓度<=1 也会被驻存,

          ②. 乘数⼤于1 . 仅包含数字, 字⺟, 下划线这个时候会被缓存. 但字符串⻓度不能⼤于20

        4. 指定驻留. 我们可以通过sys模块中的intern()函数来指定要驻留的内容. 

      PS:在代码块内的缓存机制是不⼀样的. 查是否其值是否已经存在, 如果存在, 会将其重⽤. 换句话说: 执⾏同⼀个代码块时, 遇到初始化对象的命令时,他会将初始化的这个变量与值存储在⼀个字典中, 在遇到新的变量时, 会先在字典中查询记录, 如果有同样的记录那么它会重复使⽤这个字典中的之前的这个值.

    二 解码和编码

      在Python3的内存中,在程序运行阶段,使用的是Unicode编码,因为Unicode是万国码.什么内容都可以显示.但在数据传输和存储的时候由于Unicode比较浪费空间和资源,需要把Unicode转化成UTF-8来进行储存.

      把文字转化成bytes形式叫编码:encode

      把bytes转化成Unicode/UTF-8/GBK等形式叫解码:decode

    三 基础数据补充

      join()  把列表中的数据进行拼接。 拼接成字符串

      删除列表常见问题:由于删除元素会导致元素的索引改变, 所以容易出现问题. 尽量不要再循环中直接去删除元素. 可以把要删除的元素添加到另⼀个集合中然后再批量删除.

      dict.fromkeys(iter, value)  把可迭代对象进行迭代。 和后面的value组合成键值对 返回新字典

      PS:返回新字典。不会改变原来的字典

        字典中的所有的value都是同一个列表(指向同一内存地址)

    四 set集合

      set中的元素是不重复的.⽆序的.⾥⾯的元素必须是可hash的(int, str, tuple,bool), 可以这样来记. set就是dict类型的数据但是不保存value, 只保存key. set也⽤{}表⽰

      创建:a = set()

      添加set.add()  set.update()

      删除set.pop(),  set.remove()  set.clear()

      不支持修改

      查询 for循环打印查看

      冻结 frozenset{}  冻结后不可修改

    五 深浅拷贝

      浅拷贝:只拷贝第一层内容,若第一层内容包含列表等嵌套内容,修改嵌套内容会导致同步修改

      深拷贝:把对象内容全部拷贝,修改无影响.  需import copy    a = copy.deepcopy(拷贝对象)

      作用:快速创建对象

  • 相关阅读:
    Docker
    CTF各种资源:题目、工具、资料
    Android工具集合
    Android相关资源
    命令注入新玩法:巧借环境攻击目标
    分库分表
    数据库读写分离
    Insomni'hack teaser 2019
    Insomni'hack teaser 2019
    35C3 CTF
  • 原文地址:https://www.cnblogs.com/FelixTeng/p/9852290.html
Copyright © 2020-2023  润新知