第六章

第六章

1、 == is id

  1. ==判断两个值是否相等
  2. is :是 判断的是两边的内存地址是否相同
  3. id()求地址

2、代码块:一个py文件,一个函数,一个模块,终端中的每一行都是代码块

  • (代码块是防止我们频繁的开空间降低效率设计的,当我们定一个变量需要开辟空间的时候,它会先去检测我们定义的这个值在空间中有没有开辟,如果没有开辟就进行开辟,如果在内存中开辟过就使用同一个)

    1. 整形(int) :-5~正无穷
    2. 字符串(str):
      1. 定义字符串的时候可以是任意的
      2. 字符串(字母,数字)进行乘法时总长不超过20
      3. 特殊字符(中文,符号)进行乘法的时候乘以0或1
    3. 布尔值:True False

3、小数据池:

  1. 整形(int):

  2. 字符串(str):

    1. 字母,数字长度任意符合驻留机制
    2. 字符串进行乘法的时候总长度不能超过20
    3. 特殊字符进行乘法的时候只能乘0
  3. 布尔值:True False

    小数据池,代码块同在的情况下先执行代码块

    (python考虑到我们会经常定义一些值,需要开辟空间和销毁空间,它底层就维护了一个小数据池,这个小数据就是规定一个区间使用的是同一个内存地址

    在py中默认先执行代码块;在终端中执行小数据池

4、驻留机制:节省空间,提升效率(减少了开辟空间和销毁空间的耗时)

5、集合:

集合是python中的数据类型之一,是无序的,可变的且唯一

集合就是一个没有值的字典

集合天然去重

面试题:用一行代码去重

lst = [1,223,1,1,2,31,231,22,12,3,14,12,3]print(list(set(lst))
  1. 定义一个空集合: set1 = set{}

    定义一个空字典s = {}

  2. 集合的增:

    集合名.add()

    集合名.update() 迭代添加

  3. 集合的删:

    集合名.remove() 通过元素删除

    集合名.clear() 清空

    集合名.pop() 随意删除(一般情况下是最小的)

  4. 集合的改:

    先删后改

  5. 集合的查:

    for 循环

6、其他操作:

  1. 差集 -
  2. 交集 &
  3. 并集 |
  4. 反交集 ^
  5. 子集>: 返回的是布尔值
  6. 父集(超级)<:
  7. 冻结集合 frozenset

7、深浅拷贝

以后尽量避免,但面试必问

  1. 赋值; = 将多个变量指向一个同一个内存地址就是赋值

  2. 浅拷贝

    只拷贝第一层元素的地址,只有修改第一层的时候源数据不受影响,给可变的数据类型进行添加的时候源数据会受影响

    ​ = 是 修改 .append 是添加

    可变数据类型够修改和添加,不可变数据类型只能修改

    (当拷贝完后,如果对第一层进行修改(就会改变其对应的地址)则就不会对前一个发生影响)

  3. 深拷贝

    不可变数据类型内存地址共用,可变数据类型新开辟一个空间

    import copy

    b = copy.deepcopya(a)

    深拷贝中可变数据类型新开辟一个空间的原因是防止原可变数据类型发生紊乱

转载于:https://www.cnblogs.com/yuancw/p/11462238.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值