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)  # ->{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
相关文章
|
26天前
|
调度 Python
微电网两阶段鲁棒优化经济调度方法(Python代码实现)
微电网两阶段鲁棒优化经济调度方法(Python代码实现)
|
1月前
|
Python
Python字符串center()方法详解 - 实现字符串居中对齐的完整指南
Python的`center()`方法用于将字符串居中,并通过指定宽度和填充字符美化输出格式,常用于文本对齐、标题及表格设计。
|
2月前
|
安全 Python
Python语言中常用的文件操作方法探讨
通过上述方法的结合使用,我们可以构筑出强大并且可靠的文件操作逻辑,切实解决日常编程中遇到的文件处理问题。
157 72
|
25天前
|
机器学习/深度学习 数据采集 算法
【CNN-BiLSTM-attention】基于高斯混合模型聚类的风电场短期功率预测方法(Python&matlab代码实现)
【CNN-BiLSTM-attention】基于高斯混合模型聚类的风电场短期功率预测方法(Python&matlab代码实现)
|
2月前
|
JavaScript 前端开发
如何使用Set的delete()方法删除Set中的所有元素?
如何使用Set的delete()方法删除Set中的所有元素?
206 1
|
2月前
|
数据管理 开发工具 索引
在Python中借助Everything工具实现高效文件搜索的方法
使用上述方法,你就能在Python中利用Everything的强大搜索能力实现快速的文件搜索,这对于需要在大量文件中进行快速查找的场景尤其有用。此外,利用Python脚本可以灵活地将这一功能集成到更复杂的应用程序中,增强了自动化处理和数据管理的能力。
150 0
|
3月前
|
Linux 数据库 数据安全/隐私保护
Python web Django快速入门手册全栈版,共2590字,短小精悍
本教程涵盖Django从安装到数据库模型创建的全流程。第一章介绍Windows、Linux及macOS下虚拟环境搭建与Django安装验证;第二章讲解项目创建、迁移与运行;第三章演示应用APP创建及项目汉化;第四章说明超级用户创建与后台登录;第五章深入数据库模型设计,包括类与表的对应关系及模型创建步骤。内容精炼实用,适合快速入门Django全栈开发。
103 1
|
2月前
|
传感器 算法 数据挖掘
Python时间序列平滑技术完全指南:6种主流方法原理与实战应用
时间序列数据分析中,噪声干扰普遍存在,影响趋势提取。本文系统解析六种常用平滑技术——移动平均、EMA、Savitzky-Golay滤波器、LOESS回归、高斯滤波与卡尔曼滤波,从原理、参数配置、适用场景及优缺点多角度对比,并引入RPR指标量化平滑效果,助力方法选择与优化。
411 0
|
2月前
|
存储 缓存 JavaScript
Set和Map有什么区别?
Set和Map有什么区别?
235 1
|
6月前
|
编译器 C++ 容器
【c++丨STL】基于红黑树模拟实现set和map(附源码)
本文基于红黑树的实现,模拟了STL中的`set`和`map`容器。通过封装同一棵红黑树并进行适配修改,实现了两种容器的功能。主要步骤包括:1) 修改红黑树节点结构以支持不同数据类型;2) 使用仿函数适配键值比较逻辑;3) 实现双向迭代器支持遍历操作;4) 封装`insert`、`find`等接口,并为`map`实现`operator[]`。最终,通过测试代码验证了功能的正确性。此实现减少了代码冗余,展示了模板与仿函数的强大灵活性。
166 2

推荐镜像

更多