Python全栈之路:集合set常用方法

简介: Python全栈之路:集合set常用方法

集合:一个无序的,不重复的数据组合

- 去重,列表变集合,自动去重

- 关系测试,测试两组数据之间的交集,差集,并集等关系

去重

set0 = set("hello")  # 创建字符集合
print("set0:", set0)  # ->set0: {'e', 'l', 'h', 'o'}
list1 = [1, 2, 3, 1, 2]
set1 = set(list1)  # 创建数值集合
print(type(set1), set1)  # -><class 'set'> {1, 2, 3}
set2 = {1, 2, 4, 0}
set3 = {1, 2}
print("set1:", set1)  # ->set1: {1, 2, 3}
print("set2:", set2)  # ->set2: {0, 1, 2, 4}
print("set3:", set3)  # ->set3: {1, 2}

关系测试

# 交集
print("set1 ∩ set2:", set1.intersection(set2))  # ->set1 ∩ set2: {1, 2}
print("set1 & et2:", set1 & set2)  # ->set1 & et2: {1, 2}
# 并集
print("set1 ∪ set2:", set1.union(set2))  # ->set1 ∪ set2: {0, 1, 2, 3, 4}
print("set1 | set2:", set1 | set2)  # ->set1 | set2: {0, 1, 2, 3, 4}
# 差集  in set1 but no in set2
print("set1-set2:", set1.difference(set2))   # ->set1-set2: {3}
print("set2-set1:", set2.difference(set1))  # ->set2-set1: {0, 4}
print("set1-set2:", set1 - set2)  # ->set1-set2: {3}
print("set2-set1:", set2 - set1)  # ->set2-set1: {0, 4}
# 对称差集  二者中不相交的部分
print("set1-set2 ∪ set2-set1:", set1.symmetric_difference(set2))
# ->set1-set2 ∪ set2-set1: {0, 3, 4}
print("set1 ^ set2:", set1 ^ set2)  # ->set1 ^ set2: {0, 3, 4}
# 子集
print("set3∈set1?:",set3.issubset(set1))  # ->set3∈set1?: True
print("set3 <= set1:",set3.issubset(set1))  # ->set3 <= set1: True
# 父集
print("set3∈set1?:",set1.issuperset(set3))   # ->set3∈set1?: True
print("set1 >= set3:",set1.issuperset(set3))  # ->set1 >= set3: True
# 相等
print("set1 == set2", set1 == set2)  #->set1 == set2 False
print("set1 != set2", set1 != set2)  #->set1 != set2 True
# 不相交
set4 = {5, 6, 7}
print(set4)  # ->{5, 6, 7}
print("set1∩set2==null?", set1.isdisjoint(set2))
# ->set1∩set2==null? False
print("set1∩set4==null?", set1.isdisjoint(set4))
# ->set1∩set4==null? True

关系测试

# 交集
print("set1 ∩ set2:", set1.intersection(set2))  # ->set1 ∩ set2: {1, 2}
print("set1 & et2:", set1 & set2)  # ->set1 & et2: {1, 2}
# 并集
print("set1 ∪ set2:", set1.union(set2))  # ->set1 ∪ set2: {0, 1, 2, 3, 4}
print("set1 | set2:", set1 | set2)  # ->set1 | set2: {0, 1, 2, 3, 4}
# 差集  in set1 but no in set2
print("set1-set2:", set1.difference(set2))   # ->set1-set2: {3}
print("set2-set1:", set2.difference(set1))  # ->set2-set1: {0, 4}
print("set1-set2:", set1 - set2)  # ->set1-set2: {3}
print("set2-set1:", set2 - set1)  # ->set2-set1: {0, 4}
# 对称差集  二者中不相交的部分
print("set1-set2 ∪ set2-set1:", set1.symmetric_difference(set2))
# ->set1-set2 ∪ set2-set1: {0, 3, 4}
print("set1 ^ set2:", set1 ^ set2)  # ->set1 ^ set2: {0, 3, 4}
# 子集
print("set3∈set1?:",set3.issubset(set1))  # ->set3∈set1?: True
print("set3 <= set1:",set3.issubset(set1))  # ->set3 <= set1: True
# 父集
print("set3∈set1?:",set1.issuperset(set3))   # ->set3∈set1?: True
print("set1 >= set3:",set1.issuperset(set3))  # ->set1 >= set3: True
# 相等
print("set1 == set2", set1 == set2)  #->set1 == set2 False
print("set1 != set2", set1 != set2)  #->set1 != set2 True
# 不相交
set4 = {5, 6, 7}
print(set4)  # ->{5, 6, 7}
print("set1∩set2==null?", set1.isdisjoint(set2))
# ->set1∩set2==null? False
print("set1∩set4==null?", set1.isdisjoint(set4))
# ->set1∩set4==null? True

基本操作

# 添加
print(set1)  # ->{1, 2, 3}
set1.add(5)  # 添加一项
print(set1)  # ->{1, 2, 3, 5}
set1.update([6, 7, 8, 8])  #添加多项
print(set1)  # ->{1, 2, 3, 5, 6, 7, 8}
# 删除
set1.remove(5)  # 指定删除,不存在会报错
print(set1)  # ->{1, 2, 3, 6, 7, 8}
set1.pop()  # 随意删除
print(set1)  # ->{2, 3, 6, 7, 8}
set1.discard(888)  # 指定删除,不存在不会报错
# 长度
print(len(set1))  # ->5
# 成员检查,字符串,列表,集合,字典
print(6 in set1)  # ->True
print(9 not in set1)  # ->True


相关文章
|
存储 数据处理 Python
python的set集合:如何利用Python的Set集合来优化数据处理
python的set集合:如何利用Python的Set集合来优化数据处理
|
12月前
|
存储 数据处理 Python
Python中的Set集合:高效数据处理的利器
Python中的Set集合:高效数据处理的利器
172 0
|
Python
【Python 3】Set集合的解析与使用
文章介绍了Python中Set集合的用法,包括如何创建集合、添加和删除元素,以及如何进行元素计数和成员资格检查。
108 0
|
程序员 索引 Python
06-python数据容器-set(集合)入门基础操作
06-python数据容器-set(集合)入门基础操作
|
存储 索引 Python
python-tuple(元组)-set(集合)-list(列表)-dictionary(字典)和Python数据类型转换函数
python-tuple(元组)-set(集合)-list(列表)-dictionary(字典)和Python数据类型转换函数
149 0
|
索引 Python 容器
上手Python之set(集合)
上手Python之set(集合)
上手Python之set(集合)
|
Python
Python程序设计实例 | set集合
* 本系列推文案例中,建议Python采用3.10及以上版本,NumPy采用1.22.3及以上版本,Matplotlib采用3.5.1及以上版本,Pandas采用1.4.2及以上版本。Python从3.10这个版本开始,标准发行版本中自带的IDLE交互式环境中输入提示符>>>单独放在左侧,不能随输入语句一起复制。为了清晰区分实例在交互环境中的输入和输出,本系列推文在每个输入语句的开头依然保留输入提示符>>>。
240 0
Python 进阶之术 set(集合)数据结构
Python 进阶之术 set(集合)数据结构
|
Python 容器
python中dict的详细用法以及set集合使用
python中dict的详细用法以及set集合使用
305 0