# 集合:
集合(set)是一个无序的不重复元素序列。
重点:集合里边的元素是不可重复的并且集合内的元素还是无序的。
集合是一个可变容器
集合内的数据对象都是唯一的(不能重复)
集合是可迭代对象
集合相当于是只有键没有值得字典(键就是集合中的数据)
集合内的元素可以设置不可变类型frozenset()
集合pop()删除的时候类似队列先进先出 ,是类似。
也就是说,集合可以像元组一样,设置不可改变的类型;也可以默认像字典,列表一样,可以迭代改变;同时集合里的元素可以是列表,元组,字典。
## 不能重复值 无序 不支持下标索引访问 序列不包括集合
```
基本语法:
{元素,元素2,元素3.......,元素N}
定义集合变量
变量名称={元素,元素2,元素3.......,元素N}
定义空集合
变量名称=set()
```
# 添加新元素
```
集合.add(元素) //如果集合里有则添加失败
```
# 移除元素
```
集合.remove(元素) //移除元素
```
# 随机取出一个元素
```
集合.pop()
```
# 清空集合
```
集合.clear()
```
# 取出2个集合的差集
```
集合1.difference(集合2),功能:取出集合1和集合2的差集 (集合1有而集合2没有的)
```
![](https://img.kancloud.cn/00/03/00030625d525d13c8f95becc130525f7_1094x511.png)
# 2个集合合并到一个集合里
```
集合1.union(集合2)
```
~~~
set1={1,2,3}
set2={1,5,6}
set3=set1.union(set2)
print(set3)
~~~
![](https://img.kancloud.cn/5d/75/5d75ac0e3bd740659aed51321c847cb2_1042x639.png)
# 统计集合元素个数
```
len()
```
![](https://img.kancloud.cn/11/84/1184bb5cdbbdd7112d8174fb8beebca7_506x368.png)
# 集合的遍历
## 集合不能用while循环遍历只能用for遍历
~~~
set1={1,2,3}
set2={1,5,6}
set3=set1.union(set2)
for i in set3:
print(f"集合的元素有:{i}")
~~~
![](https://img.kancloud.cn/75/7d/757de00dc01a0a90231054e32df96a1d_1098x673.png)