Set 是一个无序的不可重复的集合
1、创建
方式一:se={元素一,元素二....} 这种方式{}中必须有元素 否则默认的类型为dict字典类型 不是Set集合
方式二:se=set(可迭代的数据)不传入数据默认创建一个空的集合
2、转换
#字符串转换 s="aabcnd" se=set(s) print(se) # list 数据转换 li=["aa","bb","aa",123] se1=set(li) print(se1) #元组转换 tu=("ab",123,"bc","ab") se2=set(tu) print(se2) #字典转换 dic={"k1":123,"k2":123,"k3":"abc"} se3=set(dic) print(se3) se4=set(dic.values()) print(se4) se5=set(dic.items()) print(se5) for s in se5: print(type(s))
结果:
{'d', 'c', 'b', 'n', 'a'} {123, 'bb', 'aa'} {'bc', 123, 'ab'} {'k2', 'k1', 'k3'} {123, 'abc'} {('k2', 123), ('k1', 123), ('k3', 'abc')} <class 'tuple'> <class 'tuple'> <class 'tuple'>
3、add,diffrence diffrence_update方法的使用
#add se1={} print(type(se1))#这种方式创建默认类型是dict se=set() se.add(11) se2={22,44,11} se3=se2.difference(se)# 找出se2中存在se中不存的元素的集合 print(se) print(se3) se2.difference_update(se)# 删除 se2中与se中重复的元素 print(se2)
结果:
<class 'dict'> {11} {44, 22} {44, 22}
4、其他方法的使用
#clear se={"aa","bb",123,344} print(se) se.clear() print(se) #dicard 移除集合中的指定元素 不存在不报错 remove 在移除元素不存在的时候报错 se1={"11",23,34} se2={"aa",12,"bc"} se1.discard("11") print(se1) #intersection 获取 A和B 中都存在的元素集合 section={11,22,33,44} section1={11,33,"aa","bb"} section2={11,22,33,44,55} ret=section.intersection(section1) print(ret) # isdisjoint 判断两个集合中是否有相同的元素 有交集返回false 没有交集返回true fl=section.isdisjoint(section1) print(fl) # issubset 判断A 是否是B的子集 是返回true 反之返回false fl1=section.issubset(section1) fl2=section.issubset(section2) print(fl1) print(fl2) # issuperset 判断A是否是B的父集合 即 A中是佛包含了B中所有的元素 是返回true 反之返回false fl3=section.issuperset(section1) fl4=section2.issuperset(section) print(fl3) print(fl4) #pop 移除一个元素 移除并返回要移除的元素值 print(section) p=section.pop() print(p) print(section) p1=section.pop() print(p1) #symmetric_difference 对称交集 返回对称交集集合 不改变原有集合 sym_set=section2.symmetric_difference(section1) print(sym_set) print(section2) #symmetric_difference 对称交集 并更新原有的调用集合 print(section1) section1.symmetric_difference_update(section2) print(section1) #union 取并集 原集合不变 返回新的集合 print(section1) print(section2) set_union=section1.union(section2) print(set_union) print(section1) print(section2) # update更新 改变要更新集合的元素 print(section) section.update(section2) print(section2) print(section)
运行结果:
C:\Python3.5\python.exe E:/PythonProject/pyset/use_set.py {344, 'bb', 123, 'aa'} set() {34, 23} {33, 11} False False True False True {33, 11, 44, 22} 33 {11, 44, 22} 11 {'bb', 44, 22, 55, 'aa'} {33, 11, 44, 22, 55} {33, 'bb', 11, 'aa'} {'bb', 44, 22, 55, 'aa'} {'bb', 44, 22, 55, 'aa'} {33, 11, 44, 22, 55} {33, 'bb', 11, 44, 22, 55, 'aa'} {'bb', 44, 22, 55, 'aa'} {33, 11, 44, 22, 55} {44, 22} {33, 11, 44, 22, 55} {33, 22, 55, 11, 44}