zoukankan      html  css  js  c++  java
  • 代码块

    01 今日内容大纲

    1. is == id 用法

    2. 代码块

    3. 同一代码块下的缓存机制

    4. 不同代码块下的缓存机制(小数据池)

    5. 总结

    6. 集合(了解)

    7. 深浅copy

       

    02 昨日回顾以及作业讲解

    1. 字典初始:

      • 查询速度快,{'name': '太白'}, 存储大量的关联型数据。

      • 键:必须是不可变的数据类型(int,str,bool,tuple),唯一的。

      • 值:任意数据类型,对象。

      • 字典3.5x 之前无序的,3.6x 按照初始时的顺序排列,3.7之后有序的。

    2. 增删改查:

      • 增:setdefualt(), dic['age'] = 18

      • 删:pop 键(可以设置返回值)。clear 清空,del dic['name']

      • 改:dic['name'] = 'wusir'

      • dic['name'] dic.get('name') dic.keys() dic.values() dic.items()

    3. 字典的嵌套。

    03 具体内容

    1. id is ==

       

       1  # id 身份证号
       2  # i = 100
       3  # s = 'alex'
       4  # print(id(i))
       5  # print(id(s))
       6  # == 比较的是两边的值是否相等
       7  # l1 = [1, 2, 3]
       8  # l2 = [1, 2, 3]
       9  # print(l1 == l2)
      10  # s1 = 'alex'
      11  # s2 = 'alex '
      12  # print(s1 == s2)
      13 14  # is 判断的是内存地址是否相同
      15  # l1 = [1, 2, 3]
      16  # l2 = [1, 2, 3]
      17  # print(id(l1))
      18  # print(id(l2))
      19  # print(l1 is l2)
      20 21  s1 = 'alex'
      22  s2 = 'alex'
      23  print(id(s1))
      24  print(id(s2))
      25  print(s1 is s2)
      26 27  # id 相同,值一定相同
      28  # 值相同,id不一定相同

       

    2. 代码块

      • 代码块:我们所有的代码都需要依赖代码块执行。

      • 一个文件就是一个代码块。

      • 交互式命令下一行就是一个代码块。

    3. 两个机制: 同一个代码块下,有一个机制。不同的代码块下,遵循另一个机制。

    4. 同一个代码块下的缓存机制。

      • 前提条件:同一个代码块内。

      • 机制内容:pass

      • 适用的对象: int bool str

      • 具体细则:所有的数字,bool,几乎所有的字符串。

      • 优点:提升性能,节省内存。

       

    5. 不同代码块下的缓存机制: 小数据池。

      • 前提条件:不同代码块内。

      • 机制内容:pass

      • 适用的对象: int bool str

      • 具体细则:-5~256数字,bool,满足规则的字符串。

      • 优点:提升性能,节省内存。

       1  # i1 = 1000
       2  # i2 = 1000
       3  # i3 = 1000
       4  # l1 = [1,2,3]
       5  # l2 = [1,2,3]
       6  # print(id(l1))
       7  # print(id(l2))
       8  # print(id(i1))
       9  # print(id(i2))
      10  # print(id(i3))
      11 12  i = 800
      13  i1 = 800
      14  s1 = 'hfdjka6757fdslslgaj@!#fkdjlsafjdskl;fjds中国'
      15  s2 = 'hfdjka6757fdslslgaj@!#fkdjlsafjdskl;fjds中国'
      16  print(i is i1)
      17  print(s1 is s2)

       

     

    1. 总结:+

      1. 面试题考。

      2. 回答的时候一定要分清楚:同一个代码块下适用一个缓存机制。不同的代码块下适用另一个缓存机制(小数据池)

      3. 小数据池:数字的范围是-5~256.

      4. 缓存机制的优点:提升性能,节省内存。

    2. python基础数据类型之:集合 set。容器型的数据类型,它要求它里面的元素是不可变的数据,但是它本身是可变的数据类型。集合是无序的。{}。

      • 集合的作用:

        • 列表的去重。

        • 关系测试: 交集,并集,差集,.....

        • pass

       1  # 集合的创建:
       2  # set1 = set({1, 3, 'Barry', False})
       3  # set1 = {1, 3, '太白金星', 4, 'alex', False, '武大'}
       4  # print(set1)
       5  6  # 空集合:
       7  # print({}, type({}))  # 空字典
       8  # set1 = set()
       9  # print(set1)
      10 11  # 集合的有效性测试
      12  # set1 = {[1,2,3], 3, {'name': 'alex'}}
      13  # print(set1)
      14 15  # set1 = {'太白金星', '景女神',  '武大', '三粗', 'alexsb', '吴老师'}
      16  # 增:
      17  # add
      18  # set1.add('xx')
      19  # print(set1)
      20 21  # update迭代着增加
      22  # set1.update('fdsafgsd')
      23  # print(set1)
      24 25  # 删
      26  # remove
      27  # remove 按照元素删除
      28  # set1.remove('alexsb')
      29  #
      30  # print(set1)
      31  # pop 随即删除
      32  # set1.pop()
      33  # print(set1)
      34 35  # 变相改值
      36  # set1.remove('太白金星')
      37  # set1.add('男神')
      38  # print(set1)
      39 40  #关系测试:***
      41  #  交集
      42  # set1 = {1, 2, 3, 4, 5}
      43  # set2 = {4, 5, 6, 7, 8}
      44  # print(set1 & set2)
      45 46  # 并集:
      47  # print(set1 | set2)
      48 49  # 差集 -
      50  # print(set1 - set2)
      51 52  # 反交集
      53  # print(set1 ^ set2)
      54 55  # 子集
      56  # set1 = {1,2,3}
      57  # set2 = {1,2,3,4,5,6}
      58  # # print(set1 < set2)
      59  #
      60  # # 超集
      61  # print(set2 > set1)
      62 63 64  # 列表的去重 ***
      65  # l1 = [1,'太白', 1, 2, 2, '太白',2, 6, 6, 6, 3, '太白', 4, 5, ]
      66  # set1 = set(l1)
      67  # l1 = list(set1)
      68  # print(l1)
      69 70  # 用处:数据之间的关系,列表去重。
    3. 深浅copy(面试会考)

       1  # 赋值运算
       2  # l1 = [1, 2, 3, [22, 33]]
       3  # l2 = l1
       4  # l1.append(666)
       5  # print(l1)
       6  # print(l2)
       7  8  # 浅copy
       9  # l1 = [1, 2, 3, [22, 33]]
      10  # l2 = l1.copy()
      11  # l1.append(666)
      12  # print(l1,id(l1))
      13  # print(l2,id(l2))
      14 15 16  # l1 = [1, 2, 3, [22, 33]]
      17  # l2 = l1.copy()
      18  # l1[-1].append(666)
      19  # print(id(l1[-1]))
      20  # print(id(l2[-1]))
      21  # print(id(l1[0]))
      22  # print(id(l2[0]))
      23  # print(l1)
      24  # print(l2)
      25 26 27  # l1 = [1, 2, 3, [22, 33]]
      28  # l2 = l1.copy()
      29  # l1[0] = 90
      30  # print(l1)
      31  # print(l2)
      32 33 34 35  # 深copy
      36  # import copy
      37  # l1 = [1, 2, 3, [22, 33]]
      38  # l2 = copy.deepcopy(l1)
      39  # # print(id(l1))
      40  # # print(id(l2))
      41  # l1[-1].append(666)
      42  # print(l1)
      43  # print(l2)
      44 45 46 47  # 相关面试题;
      48  # l1 = [1, 2, 3, [22, 33]]
      49  # l2 = l1[:]
      50  # l1[-1].append(666)
      51  # print(l1)
      52  # print(l2)
      53  # 浅copy: list dict: 嵌套的可变的数据类型是同一个。
      54  # 深copy: list dict: 嵌套的可变的数据类型不是同一个 。

       

     

     

     

     

    04 今日总结

    • id is == 三个方法要会用,知道是做什么的。

    • 回答的时候一定要分清楚:同一个代码块下适用一个缓存机制。不同的代码块下适用另一个缓存机制(小数据池)

    • 小数据池:数字的范围是-5~256.

    • 缓存机制的优点:提升性能,节省内存。

    • 集合:列表去重,关系测试。

    • 深浅copy:理解浅copy,深浅copy,课上练习题整明白。

    05 预习内容

  • 相关阅读:
    从 MVC 到微服务,技术演变的必经之路
    JBOSS最大连接数配置和jvm内存配置
    数据库原理及应用第7章课后习题答案
    如何实现超高并发的无锁缓存?
    手工清理win7系统C盘的技巧
    SVN版本回退
    在sql server数据库的一个表中如何查询共有多少字段
    软件测试的四个阶段
    sp_change_users_login 'Update_One', '用户名', '登录名';
    讲一讲java异常及自定义异常
  • 原文地址:https://www.cnblogs.com/zhangxiangning/p/10206980.html
Copyright © 2011-2022 走看看