Day 07
集合类型常用操作及内置方法
1、作用:
? 1.去重
? 2.关系运算
- ? 共同好友、共同关注…
- ? 交叉并集… ##用集合就是用上面两个
2、定义:
s = {1 ,2, 3, 4, 5, 6, 7, 8}
-
集合内的元素必须是不可变类型
-
元素与元素之间逗号隔开 不是键值对
-
集合内的元素也是无序的
2.1 定义空集合
set1 = {} dict1 = {} print(type(set1),type(dict1)) # <class 'dict'> <class 'dict'> #定义空集合一定要用set关键字 ss = set() print(ss,type(ss)) # set() <class 'set'>
2.2 类型转换
能够被for循环的数据类型都能够被转成集合
s1 = set('你好孙悟空!') print(s1) # {'悟', '你', '好', '空', '孙', '!'}s2 = set(['b', 'c', 'd', 'b', 'c', 'a', 'a']) print(s2) # {'a', 'b', 'c', 'd'}s3 = set({'username':'jason','password':123}) print(s3) # {'password', 'username'}
2.3 去重
s = {1,1,1,2,3,3,4,3,2,3,4,6,5,3,} print(s) # 集合内如果有相同的元素会自动去重# 练习题 list1 = [5,32,343,53,2,435,6,3, 2,5,32,2] # 要求1 对列表进行去重不需要保持原来的元素顺序 set1 = set(list1) # 转换成更集合 自动去重 # 还原成列表 list1 = list(set1) # 还原成列表 print(list1) # [32, 2, 3, 5, 6, 435, 53, 343] # 要求2 对列表去重之后需要保持原来的元素顺序 new_list1 = [] for i in list1:if i not in new_list1:new_list1.append(i) print(new_list1) # [32, 2, 3, 5, 6, 435, 53, 343]
2.4 关系运算
pythons = {'jason', 'egon', 'kevin', 'ricky', 'gangdan', 'biubiu'} linuxs = {'kermit', 'tony', 'gangdan'}# 1. 求出即报名python又报名linux课程的学员名字集合 交集 print(pythons & linuxs) # 2. 求出所有报名的学生名字集合 并集 print(pythons | linuxs) # 3. 求出只报名python课程的学员名字 print(pythons - linuxs) # 4. 求出没有同时这两门课程的学员名字集合 对称差集 print(pythons ^ linuxs)
补充数学中的 交 并 补
且就是交集:A且B就是A与B的交集
或是并集:A或B就是A与B的并集
非就是说:假设在x∈R中,非A就是A的补集
字符编码
? ASCII 由于计算机最早起源于美国,美国人只考虑到自己的文字在计算机中的使用,所以只制定了英文及相关符号在计算机中的编码
? GBK 随着计算机的发展和普及,计算机也开始在中国发展,但是原有的英文及相关符号远远解决不了中国人的需求,于是我们便开始
设计了一种中文在计算机中的编码
? unicode 万国码 随着全球化的进行,各国人都有自己对应的在计算机中的编码,每种编码都不互通,这时就会给共同协作带来了巨大
的困难,为了克服这个困难就开始发明这种可以容纳各个国家语言文字的万国码。