集合的两大特性:
一、去重
二、关系测试
1、去重效果
>>> l1 = ["张三","李四","王五","张三"]
>>> print(type(l1)) //查看类型
<class 'list'>
>>> l1 = set(l1) //set把列表变为集合
>>> print(l1)
{'李四', '张三', '王五'}
>>> print(type(l1))
<class 'set'>
2、取两个集合的交集
>>> l1 = set([1,2,3,4,5])
>>> l2 = set([1,6,7,8,9])
>>> print(l1.intersection(l2)) //intersection是交集的意思,两个列表中的交集是"1"
{1}
3、取两个集合的并集
>>> l1 = set([1,2,3,4,5])
>>> l2 = set([1,6,7,8,9])
>>> print(l1.union(l2)) //union是求并集的意思,也就是两个列表合并后去重
{1, 2, 3, 4, 5, 6, 7, 8, 9}
4、取两个集合的差集
>>> print(l1.difference(l2)) //也就是l1有,l2没有的元素
{2, 3, 4, 5}
>>> print(l2.difference(l1)) //l2有,l1没有的元素
{8, 9, 6, 7}
5、判断子集和父集,也就是判断是不是包含的关系
>>> l3 = set([2,3,4])
>>> print(l3.issubset(l1)) //l1中的元素包含l3中的元素,所以l3是l1的子集
True
>>> print(l3.issubset(l2))
False
>>> print(l1.issuperset(l3)) //l1是l3的父集
True
6、取出两个集合的对称差集,也就是两个集合中互相都不存在的元素
>>> l1
{1, 2, 3, 4, 5}
>>> l2
{1, 6, 7, 8, 9}
>>> print(l1.symmetric_difference(l2)) //两个集合中除了元素“1”,都互相不存在
{2, 3, 4, 5, 6, 7, 8, 9}
还可以使用运算符完成以上的操作
1、交集:
>>> print(l1 & l2)
{1}
2、并集
>>> print(l1 | l2)
{1, 2, 3, 4, 5, 6, 7, 8, 9}
3、差集
>>> print(l1 - l2)
{2, 3, 4, 5}
4、对称差集
>>> print(l1 ^ l2)
{2, 3, 4, 5, 6, 7, 8, 9}
集合的增删改查
1、添加集合元素
>>> l1.add(666) //添加单个元素使用add
>>> print(l1)
{1, 2, 3, 4, 5, 666}
>>> l1.update([777,888,999]) //update方法可以同时添加多个元素
>>> print(l1)
{1, 2, 3, 4, 5, 999, 777, 888, 666}
2、删除集合元素
>>> l1.remove(666)
>>> print(l1)
{1, 2, 3, 4, 5, 999, 777, 888}