• 从内存的角度出发解决小数据池的问题


    is 和 == 的区别:

      is比较的两端的内存地址

      == 比较的是两端的值

    小数据池的概念:

    把我们通常使用过的值存储在小数据池中,供其它的变量使用,小数据池给数字和字符串使用,其他数据类型不存在

    小数据池给数字和字符串使用

    对于字符串:

    1. 如果是纯文字信息和下划线,那么这个对象会被添加到小数据池

    2. 如果是带有特殊字符的,那么不会被添加到小数据池,每次都是新的

    3 .如果是单一字母*n 的情况 . 'a'*20, 在20个单位就不会添加到小数据池中

    注意: 在py文件中,如果你只是单纯的滴定仪一个字符串,那么一般情况下都是会被添加到小数据池中的,我们可以这样认为,在使用字符串的时候,python会帮我们把字符串进行缓存,在下次使用的时候直接指向这个字符即可,可以节省很多内存

     is 比较的就是id()计算出来的结果, is比较的就是数据的内存地址

    == 双登表示的是判断是否相等,注意没这个双登比较的是具体的值,而不是内存地址

    bytes的表现形式:
    1. 英⽂文 b'alex' 英⽂文的表现形式和字符串串没什什么两样
    2. 中⽂文 b'xe4xb8xad' 这是⼀一个汉字的UTF-8的bytes表现形式

    s = "alex"
    print(s.encode("utf-8")) # 将字符串串编码成UTF-8
    print(s.encode("GBK")) # 将字符串串编码成GBK
    结果:
    b'alex'
    b'alex'
    s = "中"
    print(s.encode("UTF-8")) # 中⽂文编码成UTF-8
    print(s.encode("GBK")) # 中⽂文编码成GBK
    结果:
    b'xe4xb8xad'
    b'xd6xd0'

    记住: 英⽂文编码之后的结果和源字符串串⼀一致. 中⽂文编码之后的结果根据编码的不同. 编码结果
    也不同. 我们能看到. ⼀一个中⽂文的UTF-8编码是3个字节. ⼀一个GBK的中⽂文编码是2个字节.

    基础数据类型补充

    join ------------------->

    li = ["李李嘉诚", "麻花藤", "⻩黄海海峰", "刘嘉玲"]

    s = "_".join(li)

    print(s)

    循环删除列表中的元素:------------------>会删不干净

    这是因为for的运行过程,会有一个指针来记录当前循环的元素是哪一个,一开始这个指针指向第0个,然后获取到0个,然后删除,这个时候,原来是第一个的元素会自动变成第0个,然后指针向后移动一次,指向1元素,这时原来的1已经变成了0 ,也就不会被删除了

    ⽤用另⼀一个列列表来记录你要删除的内容. 然后循环删除

    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)

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

    dict中的fromkey(),可以帮我们通过list来创建一个dict

    前⾯面列列表中的每⼀一项都会作为key, 后⾯面列列表中的内容作为value. ⽣生成dict
    好了了. 注意:

    代码中只是更改了jay那个列表,但是由于jay和JJ用的是同一个列表,所以前面那个改了,后面那个也会跟着改

    dict中的元素在迭代过程中是不允许进行删除的

    那怎么办呢? 把药删除的元素暂时先保存在一个list中,然后循环list,再删除

     

    类型转换:

    元组==>列表    list(tuple)

    列表==>元组    tuple(list)

    list==> str    str.join(list)

    str ==> list     str.split()

    转换成False的数据:

    0,'',None,[],(),{},set() ==>False    

    换言之,凡是一切能代表空的,无的都是False

  • 相关阅读:
    html悬停文字
    在线表单验证
    无法定位ul列表的下拉选项
    HDU 4576 Robot(概率dp+滚动数组)
    HDU 4405 Aeroplane chess(期望dp)
    CodeForces 401C Team(简单构造)
    POJ 2253 Frogger(最短路Dijkstra or flod)
    HDU 4763 Theme Section(kmp)
    【JZOJ5462】好文章【哈希】
    【JZOJ5462】好文章【哈希】
  • 原文地址:https://www.cnblogs.com/ALADL/p/9289195.html
Copyright © 2020-2023  润新知