Day2补充:集合、文件、字符编码与转码
1.集合 使用{}存储
主要作用:
①去重,把两个列表变成集合,就自动去重了
②关系测试,测试两组数据之前的交集、差集、并集等关系
将列表转化为集合,set命令强制转换即可
关系运算:
交集:intersection命令 或 &
并集:union命令 或 |
差集:difference命令 或 –
子集:issubset命令
父集:issuperset命令
对称差集:symmetric_difference命令 或 ^,对于A、B两个集合,该命令输出为A∪B-A∩B(将两个集合里分别独有的元素取出来放在一起)
判断两集合是否有相同元素:isdisjoint命令
#以上操作不更改原集合
#以下操作更改原集合
添加一项元素:add命令
添加多项元素:update命令配合列表
删除一项元素:remove命令(元素不存在报错)/discard命令(元素不存在返回None)/pop命令 随机删除,返回删除的元素值
长度:len命令
判断元素在集合内:in 命令
判断元素不在集合内: not in命令
intersection_update:求交集并将其更新在原集合中(intersection是生成在新集合中不改变原集合)
difference_update、symmetric_difference_update同理
1 list1 = [1, 3, 4, 7, 5, 3, 9] 2 A = set(list1) 3 print(list1, type(list1)) 4 list2 = [2, 22, 66, 4, 7, 55] 5 B = set(list2) 6 print("集合A:", A, " ", "集合B:", B) 7 print("33[31m下面是集合操作33[0m".center(30, "-")) 8 # 交集 9 print("A、B求交", A.intersection(B), A & B) 10 # 并集 11 print("A、B求并:", A.union(B), A | B) 12 # 差集 13 print("A-B:", A.difference(B), A - B) 14 print("B-A:", B.difference(A), B - A) 15 # 子集 16 print("A是B的子集?", A.issubset(B)) 17 # 父集 18 print("A是B的父集?", A.issuperset(B)) 19 # 对称差集 20 print("对称差集", A.symmetric_difference(B), A ^ B) 21 # 判断两集合是否有相同元素 22 print(A.isdisjoint(B)) 23 print("33[31m结束33[0m".center(30, "-")) 24 print(A, B) # 上述集合操作并未更改原集合 25 26 # 添加一项元素 27 A.add("WK") 28 print(A) 29 # 添加多项元素 30 A.update([444, 666, 888]) 31 print(A) 32 # 删除一项元素 33 A.remove("WK") 34 print(A) 35 # 某元素是否在集合内 36 print("WK" in A) 37 print("WK" not in A) 38 print(A.pop()) 39 print(A) 40 A.discard(888) 41 print(A)