集合的作用:

去重,关系运算;集合必须死不可变类型(可hash类型)

定义集合:

集合:可以包含多个元素,用逗号分割

集合的元素遵循三个原则:‘

1:每个元素必须是不可变类型(可hash,可作为字典的key)

2:没有重复元素

3:无需排列

注意:

集合的目的是将不同的值存放到一起,不同的集合间用作关系运算,无需纠结集合中的单个值

 

常用的方法:

pythons=['alex','egon','yuanhao','wupeiqi','gangdan','biubiu']
linuxs=['wupeiqi','oldboy','gangdan']

in 和not in

求二者共同的部分:求即报名python又报名linux的学生

l=[]
for item in pythons:
if item in linuxs:
l.append(item)
print(l)

求只报名python,没有报名linux的学生

l=[]
for item in pythons:
if item not in linuxs:
l.append(item)
print(l)

|并集:老男孩所以报名的学生名字集合

s=pythons | linuxs

print(s)

print(pythons.union(linuxs))

&交集:求二者共同的部分:求即报名python又报名

s=pythons & linuxs

print(s)

print(pythons.intersection(linuxs))

print(linuxs.intersection(pythons))

-差集:求只报名python,没有报名linux的学生

print(pythons - linuxs)

print(pythons.difference(linuxs))

print(linuxs - pythons)

print(linuxs.difference(pythons))

^对称差集: 没有同时报名python和linux课程的学生名字集合

print(pythons ^ linuxs)

print(pythons.symmetric_difference(linuxs))

print(linuxs.symmetric_difference(pythons))

>,>=,<,<= 父集,子集

set1={1,2,3,4,5}
set2={1,2,3,4}

print(set1 >= set2)

print(set1.issuperset(set2))

print(set2 <= set1)

print(set2.issubset(set1))

 在集合中添加元素用.add()方法,.pop方法不指定参数,随机删除,并且有返回值

单纯的删除:discard,remove    指定元素删除,元素不存在不报错,单纯的删除,没有返回值

update方法谁调用更新谁的集合