the day of python learning(集合)
'''
一.集合
集合是无序的,不重复的可变数据类型,它里面的元素是可哈希的(不可变类型),但是集合本身是不可哈希(所以集合做不了字典的键)的。集合的重要两点:
去重,把一个列表变成集合,就自动去重了。
关系测试,测试两组数据之前的交集、 差集 、并集 等关系。
集合:可变的数据类型,他里面的元素必须是不可变的数据类型,无序,不重复。
{}
'''
#creat one set set1 = {1,2,3}#set()将数据类型转换为集合 #{1,2,3}为一个集合,且里面的数据为int,不可变 #print(set)#{1, 2, 3} <class 'set'> #set2 = {1,2,3,[2,3],{'name':'renxin'}} #报错,存在字典与列表等可变数据类型 #print(set2) #集合的增加 #add # set1.add('女神') # print(set1) #update,迭代着添加 # set1.update('女神') # print(set1) #集合的删除 #set1.pop()#随机删除 # print(set1.pop())#有返回值 # print(set1) #set1.remove(1)#按照元素进行删除 #print(set1) # set1.clear() # print(set1) #返回为set() # del set1 # print(set1)#返回为报错,因为集合set已经不存在了 #集合的查找 # for i in set1: # print(i) set1 = {1,2,3,4,5} set2 = {4,5,6,7,8} #交集(&或者intersection) # set3 = set1& set2 # print(set3) #返回集合的交集{4,5} #print(set1.intersection(set2)) #{4,5}#intersection返回的是函数 #并集。(| 或者union) print(set1 | set2) #{1,2,3,4,5,6,7} print(set2.union(set1)) #差集(-或者difference) print(set1 - set2) print(set1.difference(set2))#{1,2,3} #反交集(^或者symmetic_difference) print(set1^set2) #返回集合的{1,2,3,6,7,8} print(set1.symmetric_difference(set2)) #子集与超集 set1 = {1,2,3} set2 = {1,2,3,4,5,6} print(set1 < set2) print(set1.issubset(set2))#这两个相同,都是说明set1是set2子集 print(set2>set1) print(set2.issuperset(set1))#这两个相同,都是说明set2是set1超集 #frozenset不可变集合,让集合变成不可变类型 s = frozenset('barry') print(s,type(s)) #frozenset({'r', 'y', 'a', 'b'}) <class 'frozenset'> #集合无序的