集合能够理解成一个集合体,学习python的学生能够当作一个集合体,学习linux的学生也能够当作一个集合体。linux
用途:==去重,乱序==。用于关系运算的集合体,因为集合体内的元素无序且集合元素不可重复,所以集合能够去重,可是集合是无序的,去重以后会打乱原来元素的顺序。学习
定义:{}内用逗号分隔开多个元素,每一个元素必须是不可变的类型。code
定义空集合blog
s = {} # 空大括号是字典,不是集合,定义空集合必须得用set()
长度lenrem
s = {1,2,'a'} print(len(s)) #输出: 3
成员运算in or not init
s = {1,2,'a'} print(1 in s) print(2 not in s) #输出: True False
|并集 unionio
s1 = {1,2,'a'} s2 = {1,2,3,4,'b'} print(s1|s2) print(s1.union(s2)) #输出: {1, 2, 3, 4, 'b', 'a'} {1, 2, 3, 4, 'b', 'a'}
&交集 intersectionclass
s1 = {1,2,'a'} s2 = {1,2,3,4,'b'} print(s1&s2) print(s1.intersection(s2)) #输出: {1, 2} {1, 2}
-差集 differencedate
s1 = {1, 2, 'a'} s2 = {1, 2, 3, 4, 'b'} print(s1 - s2) print(s1.difference(s2)) print(s2 - s1) print(s2.difference(s1)) #输出: {'a'} {'a'} {3, 4, 'b'} {3, 4, 'b'}
^对称差集 symmetric_difference
##取出除共有的外 s1 = {1, 2, 'a'} s2 = {1, 2, 3, 4, 'b'} print(s1^s2) print(s1.symmetric_difference(s2)) #输出: {'b', 3, 4, 'a'} {'b', 3, 4, 'a'}
==
#比较 s1 = {1, 2, 'a'} s2 = {1, 2, 3, 4, 'b'} print(s1 == s2) #输出: False
父集: > >= issuperset
s1 = {1, 2, 'a'} s2 = {1, 2, 'a'} s3 = {1, 2} print(s1 >= s2) print(s1.issuperset(s2)) print(s1 > s3) print(s1.issuperset(s3)) print(s1 >= s3) print(s1.issuperset(s3)) print(s3.issuperset(s1)) #输出: True True True True True True False
子集:< <= issubset
s1 = {1, 2, 'a'} s2 = {1, 2, 'a'} s3 = {1, 2} print(s1 <= s2) print(s1.issubset(s2)) print(s3 < s1) print(s3.issubset(s1)) print(s3 <= s1) print(s3.issubset(s1)) #输出: True True True True True True
add()添加
s1 = {1, 2, 'a'} s1.add(5) print(s1) #输出: {1, 2, 5, 'a'}
remove()移除,没有报错
s1 = {1, 2, 'a'} s1.remove(2) print(s1) #输出: {1, 'a'}
difference_update()
# 取出和另一个集合不一样的元素 s1 = {1, 2, 'a'} s2={1,2,4,5,'b','c'} s2.difference_update(s1) print(s2) #输出: {4, 5, 'c', 'b'}
discard()删除(抛弃),没有不报错
s1 = {1, 2, 'a'} # s1.remove(3)# 报错 s1.discard(3) print(s1) #输出: {1, 2, 'a'}
isdisjoint
# 集合没有共同的部分返回True,不然返回False s1 = {1, 2, 'a'} s2 = {1,2,3,4,5,'b'} s3 = {6,7,8} print(s2.isdisjoint(s1)) print(s2.isdisjoint(s3)) #输出: False True
clear
copy
remove
pop(随机删除)
discard()抛弃
存在一个或者多个值:多个值,不可改变
有序或者无序:无序
可变或者不可变:可变数据类型