# 集合的定义和操作
# 列表可以修改,支持重复元素
# 元组、字符串不可修改、至此回重复元素且有序
# 集合,不支持重复元素,且元素无序
"""
1 集合.add(元素) 集合内添加一个元素
2 集合.remove(元素) 移除集合内指定的元素
3 集合.pop() 从集合中随机取出来一个元素
4 集合1.difference(集合2) 得到一个新集合,内含2个集合的差集,集合1有,集合2没有的,原2个集合不变
5 集合1.difference_update(集合2) 在集合1中,删除集合2中存在的元素,集合1被修改,集合2不变
6 集合.clear() 将集合清空
7 集合1.union(集合2) 得到1个新集合,内含2个集合的全部元素,原2个集合不变
8 len(集合) 得到一个整数,记录了集合的元素数量
"""
# 定义集合 不能重复元素,且元素无序,不支持下标索引,但可以修改
my_set = {"臭八十的","殷丽媛","yuan头","殷丽媛","臭八十的","yuan头","狗八蛋","臭八十的"}
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)}")
# 集合的操作
# 1.添加新元素 , 语法 : 集合.add(元素),结果是集合本身被修改
my_set.add("python")
print(f"通过add添加新元素后,集合的内容是:{my_set}")
# 2.移除元素。 语法: 集合.remove(元素)
my_set.remove("yuan头")
print(f"通过remove移除一个元素后,集合的内容是:{my_set}")
# 3.从集合中随机取出一个元素。 语法:集合.pop()。 结果,得到一个元素,集合本身被修改
element = my_set.pop()
print(f"从集合中随机取到的元素是:{element}")
print(f"用pop随机取出一个元素后的集合内容是:{my_set}")
# 4.清空集合 集合.clear()
my_set.clear()
print(f"使用clear清空集合后,得到的结果是:{my_set}")
# 5.取出2个集合的差集
# 语法 : 集合1.difference(集合2)
# 功能: 取出集合1和集合2的差集(集合1有而集合2没有的)
# 结果: 得到一个新的集合,集合1和集合2不变
set1 = {1,2,3,4}
set2 = {1,8,9,0}
new_set = set1.difference(set2)
print(f"集合1和集合2的差集内容是:{new_set}")
print(f"取出差集后,原有set1的结果是:{set1},set2的结果是:{set2}")
# 6.消除2个集合的差集
# 语法 : 集合1.difference_update(集合2)
# 功能: 对比集合1集合2,在集合1内,删除和集合2相同的元素。
# 结果: 集合1被修改,集合2不变
set1 = {1,2,3,4}
set2 = {1,8,9,0}
set1.difference_update(set2)
print(f"消除差集后,原有set1的结果是:{set1},set2的结果是:{set2}")
# 7.两个集合的合并
# 语法: 集合1.union(集合2)
# 功能: 将集合1和集合2组合成新的集合
# 结果:得到新集合,集合1和集合2不变
set1 = {1,2,3,4}
set2 = {1,8,9,0}
new_set2 = set1.union(set2)
print(f"将2个集合合并后的新集合内容是:{new_set2}")
print(f"2个集合合并后,原set1内容是:{set1},原set2的内容是:{set2}")
# 8.统计集合元素数量 len()
set5 = {0,1,22,5,3,6,8,9,7,4,1,5,6,2,25,5,6,2,42,10,32}
num = len(set5)
print(f"统计set5中共有{num}个元素")
# 9.集合的遍历
# 集合不支持下标所有,所以不能用while循环遍历,但可以用for循环遍历
for x in set5:
print(f"集合set5中的元素分别有:{x}")
运行结果:

