set概述
1. 概述
set集合本质上是一个无序且无重复元素的集合,但是只存储了字典中key,没有存储字典中的value。
set集合中的元素与字典中key的元素有共同的特征:
- set集合中元素也是唯一的
- set集合中元素也是不可变的
因此set集合最常用的功能就是去重
2. set的创建
set1 = set() #创建空的set集合
set2 = {1,2,3} #创建具有元素的set集合
set3 = set([]) #创建set集合
set4 = set([1, 2, 3, 4, 5])
注意:创建set需要一个list或者tuple或者dist作为输入集合,重复的元素在set中会被自动的过滤
set操作
1. set.add(element)
功能:向set集合中添加元素element
注意:
- 当添加的元素与set集合中的元素出现重复的时候,不会有任何效果,也不会报错
- 添加的元素必须是不可变类型的,如添加可变类型的元素则会报错
set1 = set([1, 2, 3, 4, 5])
print(set1)
set1.add(5)
print(set1)
set1.add(6)
print(set1)
set1.add((2, 3, 4))
print(set1)
运行结果如下:
{1, 2, 3, 4, 5}
{1, 2, 3, 4, 5}
{1, 2, 3, 4, 5, 6}
{1, 2, 3, 4, 5, 6, (2, 3, 4)}
2. set.update(序列)
功能:将序列中的元素打碎插入到set集合中
注意:
- 不能直接插入数字
- 使用update函数的时候,其参数一定是序列
set1 = set([1, 2, 3, 4, 5])
print(set1)
set1.update([6,7,8])
print(set1)
set1.update("hello")
print(set1)
运行结果如下:
{1, 2, 3, 4, 5}
{1, 2, 3, 4, 5, 6, 7, 8}
{1, 2, 3, 4, 5, 6, 7, 8, 'e', 'l', 'o', 'h'}
3. set.remove(element)
功能:将指定的元素element移除
set1 = set([1, 2, 3, 4, 5])
print(set1)
set1.remove(3)
print(set1)
运行结果如下:
{1, 2, 3, 4, 5}
{1, 2, 4, 5}
set集合的遍历
使用for循环进行遍历
for i in set1:
print(i)
注意:set是无序的,因此不能通过下标获取元素
当然我们也可以通过下面这种方式来强行添加下标:
set1 = {1,2,3,4,"hello",(1,2,3)}
for index,data in enumerate(set1):
print(index,data)
运行结果如下:
0 1
1 2
2 3
3 4
4 (1, 2, 3)
5 hello
集合的交集与并集
交集:set1 & set2
并集:set1 | set2
交集:获取两个集合元素重叠的部分
并集:获取两个集合的所有元素去除重叠的部分
set1 = {1,2,3,4,5,6}
set2 = {4,5,6,7,8,9}
print(set1 & set2)
print(set1 | set2)
运行结果如下:
{4, 5, 6}
{1, 2, 3, 4, 5, 6, 7, 8, 9}