day6

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()
  1. 字典的嵌套。

具体内容

  1. id is ==

    i = 100
    s = 'alex'
    print(id(i))

  2. == 比较的是两边的值是否相等

  3. is 判断的是内存地址是否相同
    i =100
    a = 100
    print(i is a)
    # id 相同,值一定相同
    # 值相同,id不一定相同
    代码块

    代码块
    代码块:我们所有的代码都需要依赖代码块执行。
    一个文件就是一个代码块。
    交互式命令下一行就是一个代码块。
    两个机制: 同一个代码块下,有一个机制。不同的代码块下,遵循另一个机制。
    同一个代码块下的缓存机制。
    前提条件:同一个代码块内。
    机制内容:pass
    适用的对象: int bool str
    具体细则:所有的数字,bool,几乎所有的字符串。
    优点:提升性能,节省内存。
    不同代码块下的缓存机制: 小数据池。
    前提条件:不同代码块内。
    机制内容:pass
    适用的对象: int bool str
    具体细则:-5~256数字,bool,满足规则的字符串。
    优点:提升性能,节省内存。

  4. 总结:+

    1. 面试题考。
    2. 回答的时候一定要分清楚:同一个代码块下适用一个缓存机制。不同的代码块下适用另一个缓存机制(小数据池)
    3. 小数据池:数字的范围是-5~256.
    4. 缓存机制的优点:提升性能,节省内存。
      python基础数据类型之:集合 set。容器型的数据类型,它要求它里面的元素是不可变的数据,但是它本身是可变的数据类型。集合是无序的。{}。
      集合的作用:
    • 列表的去重。
    • 关系测试: 交集,并集,差集,.....
    • pass

    集合的创建:

    set1 = set({1, 3, 'Barry', False})

    set1 =

    print(set1)

    空集合:

    print({}, type({})) # 空字典

    set1 = set()

    print(set1)

    集合的有效性测试

    set1 = {[1,2,3], 3, {'name': 'alex'}}

    print(set1)

    set1 =

    增:

    add

    set1.add('xx')

    print(set1)

    update迭代着增加

    set1.update('fdsafgsd')

    print(set1)

    删

    remove

    remove 按照元素删除

    set1.remove('alexsb')

    print(set1)

    pop 随即删除

    set1.pop()

    print(set1)

    变相改值

    set1.remove('太白金星')

    set1.add('男神')

    print(set1)

    关系测试:***

    交集

    set1 =

    set2 =

    print(set1 & set2)

    并集:

    print(set1 | set2)

    差集 -

    print(set1 - set2)

    反交集

    print(set1 ^ set2)

    子集

    set1 =

    set2 =

    # print(set1 < set2)

    # 超集

    print(set2 > set1)

    列表的去重 ***

    l1 = [1,'太白', 1, 2, 2, '太白',2, 6, 6, 6, 3, '太白', 4, 5, ]

    set1 = set(l1)

    l1 = list(set1)

    print(l1)

    用处:数据之间的关系,列表去重

深浅copy

赋值运算

l1 = [1, 2, 3, [22, 33]]

l2 = l1

l1.append(666)

print(l1)

print(l2)

浅copy

l1 = [1, 2, 3, [22, 33]]

l2 = l1.copy()

l1.append(666)

print(l1,id(l1))

print(l2,id(l2))

l1 = [1, 2, 3, [22, 33]]

l2 = l1.copy()

l1[-1].append(666)

print(id(l1[-1]))

print(id(l2[-1]))

print(id(l1[0]))

print(id(l2[0]))

print(l1)

print(l2)

l1 = [1, 2, 3, [22, 33]]

l2 = l1.copy()

l1[0] = 90

print(l1)

print(l2)

深copy

import copy

l1 = [1, 2, 3, [22, 33]]

l2 = copy.deepcopy(l1)

# print(id(l1))

# print(id(l2))

l1[-1].append(666)

print(l1)

print(l2)

相关面试题;

l1 = [1, 2, 3, [22, 33]]

l2 = l1[:]

l1[-1].append(666)

print(l1)

print(l2)

浅copy: list dict: 嵌套的可变的数据类型是同一个。

深copy: list dict: 嵌套的可变的数据类型不是同一个 。

今日总结

  • id is == 三个方法要会用,知道是做什么的。
  • 回答的时候一定要分清楚:同一个代码块下适用一个缓存机制。不同的代码块下适用另一个缓存机制(小数据池)
  • 小数据池:数字的范围是-5~256.
  • 缓存机制的优点:提升性能,节省内存。
  • 集合:列表去重,关系测试。
  • 深浅copy:理解浅copy,深浅copy,课上练习题整明白。

05 预习内容

posted @ 2019-05-06 16:26  尤利阳  阅读(19)  评论(0)    收藏  举报