文章目录

  • 一、Set的创建
  • 二、Set的数学运算
  • 三、Set之间的关系操作
  • 四、Set的基本操作
  • 1、遍历
  • 2、判断元素是否存在
  • 3、新增
  • 4、更改:先删除,后添加
  • 五、Set的特点


一、Set的创建

# 集合的创建

# 1. 使用{}创建
collage1 = {"哲学", "经济学", "法学", "教育学"}
# 注意:输出的集合是无序的
print(collage1)  # 输出:{'法学', '经济学', '哲学', '教育学'}

# 2. 通过set()函数:从其他数据结构转换
collage2 = set(["金融学", "哲学", "经济学"])
print(collage2)  # 输出:{'哲学', '经济学', '金融学'}

# 3. 使用set()函数创建字符串集合
collage3 = set("中华人民共和国")
print(collage3)  # 输出:{'华', '共', '国', '民', '和', '人', '中'}

# 4. 空集合的创建
collage4 = set()
print(collage4)  # 输出:set()
# 注意:collage4 = {} 创建的是一个字典

二、Set的数学运算

交集:intersection,intersection_update

并集:union

差集:difference,difference_update

# 集合的数学运算
collage1 = {"哲学", "经济学", "法学", "教育学"}
collage2 = set(["金融学", "哲学", "经济学"])


# 交集intersection:获取两个集合中重复的部分,新建一个集合
collage3 = collage1.intersection(collage2)
print(collage3)  # 输出:{'经济学', '哲学'}

# 对collage1产生改变
collage1.intersection_update(collage2)
print(collage1)  # 输出:{'经济学', '哲学'}



collage1 = {"哲学", "经济学", "法学", "教育学"}
# 并集union:将两个集合元素合并,去重
collage4 = collage1.union(collage2)
print(collage4)  # 输出:{'法学', '教育学', '哲学', '金融学', '经济学'}


# 差集difference:获取B中没有A中有的
# 单向差集
collage5 = collage1.difference(collage2)
print(collage5)  # 输出:{'法学', '教育学'},找出collage2没有collage1有的
collage6 = collage2.difference(collage1)
print(collage6)  # 输出:{'金融学'},collage1没有collage2有的

# 双向差集symmetric_difference:两个集合的差异部分
collage7 = collage1.symmetric_difference(collage2)
print(collage7)  # 输出:{'教育学', '法学', '金融学'}
collage1.difference_update(collage2)
print(collage1)  # 输出:{'法学', '教育学'}

三、Set之间的关系操作

  1. ==:判断集合是否相等
  2. issubset:是否为子集
  3. issuperset:是否为父集
  4. isdisjoint:判断是否存在相同元素,存在返回False,不存在返回True
# 集合间的关系操作
s1 = {1, 2, 3, 4, 5, 6}
s2 = {6, 5, 4, 3, 2, 1}

# ==判断两个集合是否相等
print(s1 == s2)  # 输出:True

s3 = {7, 8, 9, 10}
s4 = {1, 2, 3, 4, 5, 6, 7, 8}

# issubset判断是否为子集
print(s3.issubset(s4))  # 输出:False

# issuperset判断是否为父集
print(s4.issuperset(s3))  # 输出:False

s5 = {5}
s6 = {1, 3, 5, 7, 9}

# isdisjoint判断集合是否存在重复元素:True表示不存在,False表示存在
print(s5.isdisjoint(s6))  # 输出:False

四、Set的基本操作

collage1 = {"哲学", "经济学", "法学", "教育学"}

1、遍历

for 变量名 in 集合名

for c in collage1:
    print(c)
# 输出:
# 经济学
# 教育学
# 哲学
# 法学

注意:不能按照下标来取值,因为集合无序

2、判断元素是否存在

# 判断元素是否存在
print("哲学" in collage1)  # 输出:True

3、新增

add:新增,一次只能新增一个元素

set.add(“元素”)

update:可以一次增加多个元素

set.update((“元素1” , “元素2”))

# 新增数据(无则增之,有则忽视),一次只能添加一个元素
collage1.add("计算机学")
collage1.add("哲学")
print(collage1)  # 输出:{'经济学', '教育学', '法学', '哲学', '计算机学'}

# 使用update方法一次添加多个元素,不支持更新操作
collage1.update(("生物学", "工程学"))
print(collage1)  # 输出:{'计算机学', '哲学', '工程学', '经济学', '法学', '生物学', '教育学'}

4、更改:先删除,后添加

set.remove([指定元素]):若元素不存在会报错

set.discard([指定元素]):若元素不存在则忽略删除操作

# 若要更新,需要先删除指定元素,再进行添加
# 若remove了不存在的元素,会报错
# discard如果遇到不存在的元素,会忽略删除操作
collage1.remove("生物学")
collage1.add("医学")
collage1.discard("生物学")
print(collage1)  # 输出:{'经济学', '哲学', '法学', '工程学', '教育学', '计算机学', '医学'}

五、Set的特点

  1. 元素是无序的
  2. 元素不能重复
  3. 可变
  4. 允许数学运算
  5. 在内存中是分散存储的
    缺点:浪费内存空间