集合
一组用“{ }”括起来的无序不重复元素,元素可以是各种类型的不可变对象
集合的创建
- 直接用花括号创建
vehicle = {"train","bus"}
- 用set方法创建
vehicle = set(["train","bus"])
注:空集合只能用set()创建,原因是Python将“{}”用于创建空字典
集合的运算
- len():求元素个数
- in():判断某元素是否在集合中(返回boolean型)
- set1 | set2 :并集运算(生成一个新的集合) set1|=set2(将set2并入set1中)
- set1 & set2:交集运算
- set1 - set2:差集运算(在set1中不在set2中)
- set1 ^ set2:对称差(两个集合中不重叠的元素)
- 子集的判断:set1<=set2(子集) set1<set2(真子集)
- 超集的判断:set1>=set2(超集) set1>set2(真超集)
集合的方法
- union():并集
- intersection():交集
set1 = {'a','b','c'}
set2 = {'a','e','f'}
#使用这两个方法均是生成一个新的集合,而不是修改原来的集合
set3 = set1.intersection(set2)
set4 = set1.union(set2)
print(set3)
print(set4)
运行结果:
- update():并运算,与union()的不同在于update()方法修改了原集合,而不是生成一个新的集合。
- difference():求差集
- symmetric_difference():求对称差
set1 = {'a','b','c'}
set2 = {'a','e','f'}
set3 = set1.difference(set2)
set4 = set1.symmetric_difference(set2)
print(set3)
print(set4)
运行结果:
- issubset():判断是否是子集
- issuperset():判断是否是超集
set1 = {'a','b','c'}
set2 = {'a'}
print(set2.issubset(set1))
print(set1.issuperset(set2))
运行结果:
-
add():添加元素(即使元素已经存在也不会报错)
-
remove():删除元素(若没有此元素会报错)
-
discard():删除元素(若没有此元素不会报错)
set1 = {'a','b','c'}
set1.add('d')
set1.add('a')
print(set1)
set1.remove('d')
print(set1)
set1.remove('d')
set1.discard('d')
运行结果:
- pop():删除任一元素并返回该元素的值
set1 = {'a','b','c'}
print(set1.pop()) #多次运行发现pop方法删除元素是随机的
print(set1)
运行结果:
- clear():删除集合中的所有元素,变成空集合