Python基础-week03
程序员文章站
2022-09-26 16:46:46
本节内容: 1.集合及其运算 2.文件读与写详解(1-3) 3.文件修改详解 4.字符编码转化详解(1-2) 5.函数与函数式编程(1-2) 6.函数式编程之参数详解(1-2) 7.函数式编程与函数不同 8.局部变量与全局变量的作用域(1-2) 9.递归 10.高阶函数 一.集合及其运算 1.集合的 ......
本节内容:
1.集合及其运算
2.文件读与写详解(1-3)
3.文件修改详解
4.字符编码转化详解(1-2)
5.函数与函数式编程(1-2)
6.函数式编程之参数详解(1-2)
7.函数式编程与函数不同
8.局部变量与全局变量的作用域(1-2)
9.递归
10.高阶函数
一.集合及其运算
1.集合的概念
集合是一个无序的,不重复的数据组合,它的主要作用如下
*去重,把一个列表变成集合,就自动去重了
*关系测试,测试两组数据之前的交集、并集、差集、子集、父级、对称差集,判断没有交集等关系
2.常用操作:
1):集合的增删改查:
1 #Author Jame-Mei 2 #集合的增删改查等基本操作 3 4 list1=set([1,3,5,7]) 5 6 #1.增加 7 list1.add(9) #添加单项,update添加多项。 8 print (list1): 9 {1, 3, 5, 7, 9} 10 11 ======================================= 12 #2.删除 13 list1.remove(1) #删除指定单个,如果指定不存在报错 14 list1.pop() #删除任意并返回 15 list1.discard('absdf') ##删除指定单个,如果指定不存在返回None值(不报错) 16 17 print (list1): 18 {3, 5, 7} 19 ======================================= 20 21 #3.修改 22 list1.update([2,4,6]) #注意这里格式,为列表的格式!! 23 list1.update(['a','A','b','C']) 24 25 print (list1)#(输出后,原来的数据不变,会添加到集合里,顺序是随机的!) 26 {1, 2, 3, 4, 5, 6, 7, 'b', 'C', 'a', 'A'} 27 28 ======================================== 29 30 #4.查看 31 32 #1):长度 33 print(len(list1)) 34 35 #2):查看元素是否在集合中(列表,字典,集合,字符串都可以用in 或者not in来判断!!!) 36 print (5 in list1) 37 #3):查看元素是否不是list1中 38 print (9 not in list1) 39 40 #4):测试list1是否是list2的子集 41 list2=set([1,3,5,7,9]) 42 43 44 print(list1.issubset(list2)) 45 #运算符 46 print (list1<=list2) 47 48 #5):测试list2是否是list1的父级 49 print(list2.issuperset(list1)) 50 #运算符 51 print (list2>=list1) 52 53 #还有并集 | ,差集 - ,对称差集 ^,浅coyp: list1.copy等等
2):常见的集合运算和集合运算符
1 #Author Jame-Mei 2 3 #1.去除除列表中重复值 4 list1=[1,3,5,7,1,2,4,7] 5 6 list1=set(list1) 7 print (list1,type(list1)) 8 9 output: 10 {1, 2, 3, 4, 5, 7} <class 'set'> 11 =========================================================================================>>>>>>>> 12 13 14 #2.取交集:关系测试 15 list1=set([1,3,6,7,9]) 16 list2=set([2,4,6,7,8]) 17 #其中重复为6,7 18 print (list1,list2): 19 {1, 3, 6, 7, 9} {2, 4, 6, 7, 8} 20 21 #list3为交集的元素 22 list3=list1.intersection(list2) 23 print (list3): 24 {6, 7} 25 26 #交集元算符:& (两边无先后顺序) 27 list1 & list2 28 =========================================================================================>>>>>>>> 29 30 31 #2.取并:union() 32 list1=set([1,3,5]) 33 list2=set([2,4,6]) 34 35 list3=list1.union(list2) 36 print (list3): 37 {1, 2, 3, 4, 5, 6} 38 39 #并集运算符:| (两边无先后顺序) 40 list1 | list2 41 =========================================================================================>>>>>>>> 42 43 44 #3.差集:求list1和list2共有的以外的,各自的元素。 45 list1=set([1,3,5,7,9]) 46 list2=set([2,4,6,7,9]) 47 48 #取list1的差集,list2中没有的,属于list1的。 49 list3=list1.difference(list2) 50 print (list3): 51 {1, 3, 5} 52 53 #取list2的差集,list1中没有的,属于list2的。 54 list4=list2.difference(list1) 55 print (list4): 56 {2, 4, 6} 57 58 #差集运算符: - (在左边,不在右边) 59 list1 - list2 60 61 list2 - list1(差集的元素在list2中,不在list1中) 62 =========================================================================================>>>>>>>> 63 64 65 #4.子集:list1是否是list2的子集(儿子),list1里面有的list2都有,list2里面有的,list1不一定有(list2包括list1) 66 list1=set([1,3,5]) 67 list2=set([1,3,5,7,9]) 68 print (list1.issubset(list2)): 69 True 70 =========================================================================================>>>>>>>> 71 72 73 74 #5.父级:list1是否是list2的父级(父亲),list1包括list2,list1里面有的list不一定有,list2有的list1一定有。 75 list2=set([1,3,5]) 76 list1=set([1,3,5,7,9]) 77 print(list1.issuperset(list2)): 78 True 79 =========================================================================================>>>>>>>> 80 81 82 #6.对称差集:去除2者重复后的所有元素,或者这两者的差集相加,(互相都没有的和)就是对称差集。 83 list2=set([1,3,5,8,10,12]) 84 list1=set([1,3,5,7,9]) 85 86 print (list1.symmetric_difference(list2)): 87 {7, 8, 9, 10, 12} 88 89 #对称差集的元算符: ^ (返回一个新的 set 包含 list1 和 list2 中不重复的元素 ,无顺序关系!) 90 list1 ^ list2 91 92 =========================================================================================>>>>>>>> 93 #7.判断没有交集,True=没有交集,False=有交集。 94 list1=set([1,3,5]) 95 list2=set([2,4,6]) 96 97 flag=list1.isdisjoint(list2) 98 print(flag): 99 True
未完待遇.....