python-集合
python-集合
集合(set)是一个无序的不重复元素序列.
可以使用大括号 { } 或者 set() 函数创建集合,注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典。
例:
list1=[1,3,4,2,3,4,5,9,3,7,8] list2=set(list1) list3=set([3,4,9,11,14,19,20]) print (list2,type(list2)) 打印结果 {1, 2, 3, 4, 5, 7, 8, 9} <class 'set'>
#交集 print (list2.intersection(list3)) print(list2&list3)
打印结果
{9, 3, 4}
{9, 3, 4}
#并集 print(list2.union(list3)) print(list2^list3)
打印结果
{1, 2, 3, 4, 5, 7, 8, 9, 11, 14, 19, 20}
#差集 print(list2.difference(list3)) print(list3.difference(list2))
打印结果
{8, 1, 2, 5, 7}
{19, 11, 20, 14}
#子集与父集 list4=set([9,3,4]) print(list4.issubset(list3)) print(list3.issuperset(list4))
打印结果
True
True
#反向差集-对称差集 print(list2.symmetric_difference(list3)) 打印结果 {1, 2, 5, 7, 8, 11, 14, 19, 20}
#不否有交集 print ("---------------") list5=set([5,6,8]) print(list4.isdisjoint(list5))
打印结果
---------------
True
集合的一些运算
list5.add(999) list5.update([888,666,555]) print(list5) print(list2&list3) print (list3|list2) print(list2^list3) print(list2-list3) print(list3-list2) 打印结果 {5, 6, 999, 8, 555, 888, 666} {9, 3, 4} {1, 2, 3, 4, 5, 7, 8, 9, 11, 14, 19, 20} {1, 2, 5, 7, 8, 11, 14, 19, 20} {8, 1, 2, 5, 7} {19, 11, 20, 14} list5.remove(555) list5.discard(333) print(list5) print(len(list5)) 打印结果 {5, 6, 999, 8, 888, 666} 6
判断X 是否是Y的元素 cc={999,666} print(cc<=list5) print(cc.issubset(list5)) 打印结果 True True
#所有的元素,字典,列表,字符串,集合,判断是否在里面 print(666 in cc) print(666 not in cc) 打印结果 True False