代码块
- 
is == id 用法 
- 
代码块 
- 
同一代码块下的缓存机制 
- 
不同代码块下的缓存机制(小数据池) 
- 
总结 
- 
集合(了解) 
- 
深浅copy 
02 昨日回顾以及作业讲解
- 
字典初始: - 
查询速度快,{'name': '太白'}, 存储大量的关联型数据。 
- 
键:必须是不可变的数据类型(int,str,bool,tuple),唯一的。 
- 
值:任意数据类型,对象。 
- 
字典3.5x 之前无序的,3.6x 按照初始时的顺序排列,3.7之后有序的。 
 
- 
- 
增删改查: - 
增:setdefualt(), dic['age'] = 18 
- 
删:pop 键(可以设置返回值)。clear 清空,del dic['name'] 
- 
改:dic['name'] = 'wusir' 
- 
dic['name'] dic.get('name') dic.keys() dic.values() dic.items() 
 
- 
- 
字典的嵌套。 
03 具体内容
- 
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不一定相同 
- 
代码块 - 
代码块:我们所有的代码都需要依赖代码块执行。 
- 
一个文件就是一个代码块。 
- 
交互式命令下一行就是一个代码块。 
 
- 
- 
两个机制: 同一个代码块下,有一个机制。不同的代码块下,遵循另一个机制。 
- 
同一个代码块下的缓存机制。 - 
前提条件:同一个代码块内。 
- 
机制内容:pass 
- 
适用的对象: int bool str 
- 
具体细则:所有的数字,bool,几乎所有的字符串。 
- 
优点:提升性能,节省内存。 
 
- 
- 
不同代码块下的缓存机制: 小数据池。 - 
前提条件:不同代码块内。 
- 
机制内容: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) 
- 
- 
总结:+ - 
面试题考。 
- 
回答的时候一定要分清楚:同一个代码块下适用一个缓存机制。不同的代码块下适用另一个缓存机制(小数据池) 
- 
小数据池:数字的范围是-5~256. 
- 
缓存机制的优点:提升性能,节省内存。 
 
- 
- 
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 # 用处:数据之间的关系,列表去重。 
- 
- 
深浅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 预习内容
- 
数据类型的补充以及编码的进阶:https://www.cnblogs.com/jin-xin/articles/10577131.html 
- 
 
                     
                    
                 
                    
                
 
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号