网站首页 > 基础教程 正文
集合是由不重复元素组成的无序容器。基本用法包括成员检测、消除重复元素。集合对象支持合集、交集、差集、对称差分等数学运算。
创建集合用花括号或 set() 函数。注意,创建空集合只能用 set(),不能用 {},{} 创建的是空字典. 可以包含多个元素,用逗号分割
集合的元素遵循三个原则:
1、每个元素必须是不可变类型
2、没有重复的元素
3、无序
并集 |或者union()
将两个集合的元素合在一起,并去除重复的
class1 = {"python", "java", "c++", "go"}
class2 = {"python", "php", "js", "go"}
print(class1 | class2)
print(class1.union(class2))
"""
{'js', 'go', 'c++', 'python', 'java', 'php'}
{'js', 'go', 'c++', 'python', 'java', 'php'}
"""
交集 &
求两个集合共同的部分
class1 = {"python", "java", "c++", "go"}
class2 = {"python", "php", "js", "go"}
print(class1 & class2) # {'python', 'go'}
差集 -或者difference()
set1-set2 在set1中存在但是在set2中不存在的元素
class1 = {"python", "java", "c++", "go"}
class2 = {"python", "php", "js", "go"}
print(class1 - class2) # {'java', 'c++'}
print(class1.difference(class2)) # {'java', 'c++'}
对称差集 ^或者symmetric_difference()
去除两个集合中都存在的元素,剩下的元素组合成的集合
class1 = {"python", "java", "c++", "go"}
class2 = {"python", "php", "js", "go"}
print(class1 ^ class2) # {'js', 'php', 'c++', 'java'}
print(class1.symmetric_difference(class2)) # {'js', 'php', 'c++', 'java'}
父集、子集
set1 = {1, 2, 3, 4, 5}
set2 = {1, 2, 3, 4}
# 判断set1是否是set2的父集
print(set1 >= set2)
print(set1.issuperset(set2))
# 判断set2是否是set1的子集
print(set2 <= set1)
print(set2.issubset(set1))
添加元素add()
只能添加不可变类型
classes = {"python", "java", "c++", "go"}
classes.add("php")
print(classes) # {'python', 'java', 'c++', 'php', 'go'}
classes.add(["golang", "js"]) # 报错 TypeError: unhashable type: 'list'
删除元素
pop()
不用指定参数,随机删除,并且会有返回值
classes = {"python", "java", "c++", "go"}
res = classes.pop()
print(res) # 随机删除 每次值可能都不一样
remove()
指定元素删除,元素不存在则报错,单纯的删除,没有返回值,
classes = {"python", "java", "c++", "go"}
classes.remove("go")
print(classes) # {'python', 'java', 'c++'}
classes.remove("php") # 报错 KeyError: 'php'
discard()
指定元素删除,元素不存在不报错,单纯的删除,没有返回值,
classes = {"python", "java", "c++", "go"}
classes.discard("go")
print(classes) # {'python', 'java', 'c++'}
classes.discard("php")
print(classes) # {'python', 'java', 'c++'}
update()
已存在就忽略,没存在就添加
classes1 = {"python", "java", "c++", "go"}
classes2 = {"php", "js"}
classes1.update(classes2)
print(classes1)
for 循环
classes1 = {"python", "java", "c++", "go"}
for cls in classes1:
print(cls)
是否包含 in
classes = {"python", "java", "c++", "go"}
print("python" in classes) # True
print("php" in classes) # False
猜你喜欢
- 2024-10-31 如何用 GitHub Actions 写出高质量的 Python代码?
- 2024-10-31 Python集成ActiveMQ,异步发送处理消息,详细代码手把手操作
- 2024-10-31 python 魔法方法连载三 __setattr()__
- 2024-10-31 CentOS 7下编译安装Python3 centos7安装python3.7
- 2024-10-31 3分钟掌握Python 中的集合 python中集合的概念
- 2024-10-31 Python3 集合 python 集合 discard
- 2024-10-31 群晖安装python3 群晖安装python3.7
- 2024-10-31 Python的设计还是很精妙的,三分钟理解__get__和__set__
- 2024-10-31 十六、Python集合set常用方法 python set集合和list集合的区别
- 2024-10-31 python笔记18:set 集合 python set集合取值
- 最近发表
- 标签列表
-
- jsp (69)
- gitpush (78)
- gitreset (66)
- python字典 (67)
- dockercp (63)
- gitclone命令 (63)
- dockersave (62)
- linux命令大全 (65)
- pythonif (86)
- location.href (69)
- dockerexec (65)
- tail-f (79)
- queryselectorall (63)
- location.search (79)
- bootstrap教程 (74)
- 单例 (62)
- linuxgzip (68)
- 字符串连接 (73)
- html标签 (69)
- c++初始化列表 (64)
- mysqlinnodbmyisam区别 (63)
- arraylistadd (66)
- mysqldatesub函数 (63)
- window10java环境变量设置 (66)
- c++虚函数和纯虚函数的区别 (66)