set:对一个列表做set可得到一个集合。
#set定义 like_Chinese=['Sun Da','Li Wei','Meng Dawei','He Ning','Xiao Bei'] like_English=['Bei Fang','Xiao Bei','Deng Deng','Xiao Hua'] like_Chinese=set(like_Chinese) #集合 like_English=set(like_English) print(like_Chinese) print(like_English)
set 特性:去重,无序;用来关系测试。
set关系测试:两种方法:函数式和运算符
#关系测试:函数式写法 print(like_Chinese.intersection(like_English)) #交集 print(like_Chinese.union(like_English)) #并集 print(like_Chinese.difference(like_English)) #差集 print(like_Chinese.symmetric_difference(like_English)) #对称差集,即去掉交集 print(like_Chinese.issubset(like_English)) #子集 print(like_Chinese.issuperset(like_English)) #负集 print(like_Chinese.isdisjoint(like_English)) #不相交返回真
#关系测试:运算符写法 print(like_Chinese & like_English) #交集 print(like_Chinese | like_English) #并集 print(like_Chinese - like_English) #差集 print(like_Chinese ^ like_English) #对称差集
set基本操作:增加 删除
#基本操作(增删,无插入) like_Chinese.add("Xiao Hai") #增加一个 print(like_Chinese) like_Chinese.update(['Xiao Ye','Xiao Peng']) #增加多个 print(like_Chinese) like_Chinese.remove("Xiao Ye") #删除存在的一个,否则报错 print(like_Chinese) like_Chinese.pop() #任意删除一个 print(like_Chinese) like_Chinese.discard("Xiao Hai") #删除Xiao Hai,若不存在,则不变 print(like_Chinese)
判断一个成员是否在或不在一个set里
'Xiao Bei' not in like_Chinese #Xiao Bei 是否不是like_Chinese的成员 'Xiao Bei' in like_Chinese #Xiao Bei 是否是like_Chinese成员