创建集合
创建空集合
empty = set()
print(empty)在这里插入代码片
基于字符串
str_set = set("我喜欢python")
print(str_set)#每次输出顺序不一样,集合的无序性
输出结果
=================== RESTART: C:/Users/86151/Desktop/4.8.py ===================
{'喜', 'p', 'h', 'o', 'n', 't', '欢', '我', 'y'}
>>>
=================== RESTART: C:/Users/86151/Desktop/4.8.py ===================
{'p', '我', '喜', 'h', 'n', 't', '欢', 'y', 'o'}
基于元组
list_set = set([12,23,445,65,6])
print(list_set)
基于集合
set1 = {21,3,4,5,23,56,7}
print(set1)
练习
姓名 露西 莉莉 韩梅梅 李雷 杰克 露娜
课程 C语言 数据库 数据库 云计算 界面设计 云计算
分数 92 87 98 85 56 60
- 创建一个包含姓名的集合
方法一:通过{}创建集合
name_set = set{"露西","莉莉","韩梅梅","李雷","杰克","露娜"}
print(name_set)
方法二:通过set()创建
name_set = set(["露西","莉莉","韩梅梅","李雷","杰克","露娜"])
print(name_set)
- 创建一个包含分数的列表
score_set = ([92,87,98,85,56,60])
print(score_set)
- 创建一个空集合
empty = set()
print(empty)
- 将分数列表转换为集合
score_set = ([92,87,98,85,56,60])
score2_set = set(score_set)
print(score2_set)
集合的基本操作——增删改查
增加集合元素
1.通过update()函数添加字典元素
set1 = {"12","34","345","11"}
set1.update({"14","18"})
print(set1)
输出结果
{'345', '11', '12', '14', '18', '34'}
2.通过add()函数添加
set1 = {"12","34","345","11"}
set1.add("14")
print(set1)
输出结果
{'12', '345', '14', '11', '34'}
删除集合元素
1.通过pop()函数,删除任意一个元素
set1 = {"12","34","345","11"}
set1.pop()
print(set1)
输出结果
{'12', '34', '11'}
2.通过remove()函数删除指定元素
set1 = {"12","34","345","11"}
set1.remove(11)
print(set1)
输出结果
{'34', '12', '345'}
修改集合中的元素
1.update()添加任意数据类型
语法格式:
setname.update(任意数据类型,不包括布尔类型)
查找集合元素
1.通过成员in判断元素是否在集合中
学生库信息
set_name = set()#定义一个空集合
print("请选择你要完成的操作: 1.添加学生 2.删除学生 3.退出系统")
while True:
a = int(input("请输入你要完成的操作:"))
if a == 1:
b = input("请输入你要添加的学生姓名:")
set_name.add(b)
print("您已添加" + b +"的学生信息!")
print("您现在的学生库信息有:",set_name)
elif a == 2:
c = input("请输入你要删除的学生姓名:")
set_name.remove(c)
print("您已删除" + c +"的学生信息!")
print("您现在的学生库信息有:",set_name)
elif a == 3:
break
print("您已退出系统,感谢您的使用")
else:
print("输入错误,请重新输入")
continue
集合的交集,并集,差集,对称差集
交集使用intersection()函数或 & 符号表示:取两者相同部分
语法格式:
newsetname = setname1.intersection(setname2)
或者
语法格式:
newsetname = setname1 & setname2
并集使用union()函数或 | 符号表示:包含重合和不重合的部分
语法格式:
newsetname = setname1.union(setname2)
或者
语法格式:
newsetname = setname1 | setname2
差集使用difference()函数或 - 符号表示:除去两者相同部分,被减数剩下部分
语法格式:
newsetname = setname1.difference(setname2)
或者
语法格式:
newsetname = setname1 - setname2
练习
选择数据库的学生:韩梅梅,李雷,杰克,莉莉
选择python的学生:李雷,露西,韩梅梅,露娜
(1)如何找出既选择了数据库又选择了python的学生?
sql = {"韩梅梅","李雷","杰克","莉莉"}
python = {"李雷","露西","韩梅梅","露娜"}
print("既选择了数据库又选择了python的同学:",sql & python)
print("既选择了数据库又选择了python的同学:",sql.intersection(python))
输出结果
既选择了数据库又选择了python的同学: {'李雷', '韩梅梅'}
既选择了数据库又选择了python的同学: {'李雷', '韩梅梅'}
(2)如何找出所有选课学生的名单?
sql = {"韩梅梅","李雷","杰克","莉莉"}
python = {"李雷","露西","韩梅梅","露娜"}
print("所有选课学生名单:",sql | python)
print("所有选课学生名单:",sql.union(python))
输出结果
所有选课学生名单: {'韩梅梅', '莉莉', '露西', '杰克', '露娜', '李雷'}
所有选课学生名单: {'韩梅梅', '莉莉', '露西', '杰克', '露娜', '李雷'}
(3)如何找出选了python没有选数据库的学生名单?
sql = {"韩梅梅","李雷","杰克","莉莉"}
python = {"李雷","露西","韩梅梅","露娜"}
print("选了python没有选数据库的同学:",python - sql)
print("选了python没有选数据库的同学:",python.difference(sql))
输出结果
选了python没有选数据库的同学: {'露西', '露娜'}
选了python没有选数据库的同学: {'露西', '露娜'}