一、集合set的定义
考虑使用集合的场景,通过已经学习的列表、元组、字符串三个数据容器特性来分析:
列表可以修改、支持重复元素且有序
元组、字符串、不可修改、支持重复元素且有序
局限就在于:它们支持重复元素
集合定义语法:

二、集合的特点
集合-->不支持重复元素(自带去重功能)且无序
三、集合的操作
集合的常用操作 -- 修改
由于集合无序,因此不支持:下标索引访问 也因此集合不是序列
但是集合和列表一样是支持修改的
1、添加新元素 add()
语法:集合.add(元素) 将指定元素添加到集合内
结果:集合本身被修改添加了新元素

2、移除元素 remove()
语法:集合.remove(元素) 将指定元素从集合内移除
结果:集合本身被修改移除了元素
3、从集合中随机取出元素 pop()
语法:集合.pop(元素)
结果:得到一个元素的结果。同时集合本身被修改,元素被移除

4、取两个结果的差集 difference()
语法:集合1.difference(集合2) 即就是取出集合1有而集合2没有的
结果:得到一个新集合,集合1和集合2不变。

5、消除2个集合差集 difference_update()
语法:集合1.difference_update(集合2)
功能:对比集合1和集合2,在集合1内,删除和集合2相同的元素。
结果:集合1被修改,集合2不变

6、两集合合并
语法:集合1.union(集合2)
功能:将集合1和集合2组成新集合。
结果:得到新集合 集合、集合2不变

代码实操:
- """
- 演示数据容器集合的使用
- """
-
- # 定义集合 不重复、无序
-
- my_set = {"春天的熊","joker","blame",True,21,'blame'}
-
- my_set_empty = set() # 定义空集合
-
- print(f"my_set的内容:{my_set},类型是:{type(my_set)}")
-
- print(f"my_set_empty的内容:{my_set_empty},类型是:{type(my_set_empty)}")
-
- # 添加新元素 add()
-
- my_set.add('jizz')
-
- my_set.add('joker') # 重复的不会添加
-
- print(f"添加元素后结果:{my_set}")
-
- # 移除元素 remove()
-
- my_set.remove(True)
-
- print(f"移除元素后结果:{my_set}")
-
- # 随机取出一个元素 pop()
-
- my_set = {"春天的熊","joker","blame",21}
-
- element = my_set.pop()
-
- print(f"随机取出的元素是:{element},取出后集合结果为{my_set}")
-
- # 情空集合 clear()
-
- my_set.clear()
-
- print(f"集合被清空了,结果是{my_set}")
-
- # 取两个集合的差集 集合1.difference(集合2) --取出集合1有而集合2没有的元素
-
- set1 = {1,2,3}
-
- set2 = {1,5,6}
-
- set3 = set1.difference(set2)
-
- print(f"set1={set1},set2={set2},取出差集后的结果:{set3}")
-
- # 消除2个集合差集 difference_update()
-
- set1 = {1,2,3}
-
- set2 = {1,5,6}
-
- set1.difference_update(set2)
-
- print(f"消除差集后:set1={set1},set2={set2}")
-
- # 2个集合合并为一个 union()
-
- set1 = {1,2,3}
-
- set2 = {1,5,6}
-
- set3 = set1.union(set2)
-
- print(f"set1={set1},set2={set2},合并后集后的结果:{set3}")
-
- # 统计集合元素数量 len()
-
- set1 = {1,2,3,'fu*k'}
-
- num = len(set1)
-
- print(f"{set1}中元素数量为:{num}")
集合的遍历:集合不支持下标索引,不能用while循环。可以用for循环
- #集合的遍历 集合不支持下标索引,不能用while循环。可以用for循环
-
- set1 = {1,2,3,'fu*k'}
-
- for element in set1:
-
- print(f"{set1}中的元素:{element}")


集合练习:
- # 有如下列表对象:
-
- my_list = ['春天的熊','joker','bear','coding','python','sHSb','sHSb']
-
- # 定义一个空集合
-
- my_set = set()
-
- # 通过for循环遍历列表
-
- for element in my_list:
-
- my_set.add(element)
-
- print(f"去重后集合对象:{my_set}")
-
- # 在for循环中将列表中的元素添加至集合
-
- # 最终得到去重后的集合额对象 打印输出