集合(set)
集合与字典类似,但里面的元素不是键值对了。它是一个无序的,不同元素组成的集合。里面所有的元素都互不重复。
1. 创建集合
集合不能直接定义,只能通过强制类型转换间接定义。比如
>>> a = [1, 2, 3, 2] #定义列表a
>>> b = set(a) #将a转换为列表后赋给b
>>> print(b) #打印b
{1, 2, 3}
>>> print(type(b)) #打印b的类型
<class 'set'>
我们可以发现,集合与字典都是用花括号括起来的,元素与元素间用逗号隔开,不同的是,集合内的元素都是单一的,不是键值对。
它的特点是不存在重复的元素。因此有些时候可以用其来删掉重复的元素。
2. 添加元素set.add(value)
集合自带了add方法,可以通过此方法向集合中加入元素
>>> a = set([1, 2, 3, 4, 3]) #创建集合a
>>> a.add(5) #向集合a中加入5
>>> print(a)
{1, 2, 3, 4, 5}
>>> a.add(3) #向集合a中加入3
>>> print(a)
{1, 2, 3, 4, 5}
我们可以看到,当要加入的元素已经在集合中存在后,使用add加入后是不会有变化的。
3. 删除元素set.remove(value)
集合自带了remove方法,用来删除元素
>>> a = set([1, 2, 3, 4, 3]) #创建集合a
>>> print(a) #打印集合a
{1, 2, 3, 4}
>>> a.remove(3) #删除集合a中的3
>>> print(a) #打印集合a
{1, 2, 4}
4. 集合的操作
集合与数学上的集合一样,可以求两个集合的交集,并集,差集,对称差集
- 交集
&
使用&可以求得两个集合的交集
>>> a = set([1, 2, 3]) #创建集合a
>>> b = set([1, 2, 4]) #创建集合b
>>> print(a & b) #打印a与b的交集
{1, 2}
- 并集
|
使用|可以求得两个集合的并集
>>> a = set([1, 2, 3]) #创建集合a
>>> b = set([1, 2, 4]) #创建集合b
>>> print(a | b) #打印a与b的并集
{1, 2, 3, 4}
- 差集
-
使用-可以求得两个集合的差集,a-b即为,求属于a,不属于b的元素
>>> a = set([1, 2, 3]) #创建集合a
>>> b = set([1, 2, 4]) #创建集合b
>>> print(a - b) #打印a与b的差集
{3}
>>> print(b - a) #打印b与a的差集
{4}
- 对称差集
^
可以使用^求两个集合的对称差集。
对称差集是集合a与b中所有不属于A∩B的元素的集合,即在a,b中出现,但不同时出现的元素的集合。
>>> a = set([1, 2, 3]) #创建集合a
>>> b = set([1, 2, 4]) #创建集合b
>>> print(a ^ b) #打印a与b的对称差集
{3, 4}
5. 其他方法
- 查看集合内元素的个数
len()
函数len()
对集合也适用。
>>> a = set([1, 2, 3, 4, 3]) #创建集合a
>>> print(len(a)) #打印集合a内元素的个数
4
- 复制一个集合
set.copy()
集合自带一个copy()方法,与此前的列表复制的方法一样
>>> a = set([1, 2, 3, 4, 3]) #创建集合a
>>> b = a.copy() #将a复制后赋给b
>>> print(a) #打印集合a
{1, 2, 3, 4}
>>> print(b) #打印集合b
{1, 2, 3, 4}
- 清除集合内所有的元素
set.clear()
与此前列表和字典的clear相同
>>> a = set([1, 2, 3, 4, 3]) #创建集合a
>>> print(a) #打印集合a
{1, 2, 3, 4}
>>> a.clear() #清除a中所有的元素
>>> print(a) #打印集合a
set()
关于更多集合的信息,可以使用help(set)查看帮助信息。
网友评论