Python 集合探索:解密高效数据操作和快速算法的奇妙世界

简介: Python 集合探索:解密高效数据操作和快速算法的奇妙世界

前言

在 Python 的众多数据结构中,集合(Sets)是一个引人注目且实用的概念。集合提供了一种存储无顺序、唯一元素的数据结构,它们不仅可以帮助我们高效处理数据,还能应用于各种算法和问题。


本博客将带您踏上一段关于 Python 集合的探索之旅。我们将深入了解集合的基本概念、使用方法和相关操作,了解集合与其他数据结构的比较优势,以及如何利用集合来解决实际问题。


准备好开始探索 Python 集合的奇妙世界了吗?让我们一起深入了解集合的魅力,开启这段令人兴奋的学习之旅吧!🚗🚗🚗

什么是 python 集合


在Python中,集合是一个独特的元素集合。换句话说,集合是无序的,元素们彼此之间不重复的容器。当需要存储多个项目,但不关心顺序或重复时,通常可以使用集合。Python集合可以包含不同类型(整数,浮点数,元组,字符串等)的不可变类型数据,也就是说集合中不能包含列表,因为列表是可变类型。


这是因为,为了保证元素的唯一性,集合(set)内部对元素的实现依赖于散列(hash)技术。散列技术要求元素必须是不可变的类型才能确保散列值不变,因此保持集合的正确运行。列表由于是可变类型,所以不能哈希化,也就不能被加入到集合中。


集合在Python中定义为在大括号{}内放置一个逗号分隔的列表。也可以通过调用内置的 “set()” 函数从一些其他集合类型比如列表,元组构建出一个集合。

set1 = {1,13.14,'zhangsan',(3,4,5)}
print(type(set1))
print(set1)

set2 = set('zhangsan')
print(type(set2))
print(set2)


这里我们可以发现,输出集合的顺序跟我们定义集合的时候的顺序是不同的,这也体现了集合的无序性。同时因为集合的无序性,集合不支持下标操作。

set1 = {1,13.14,'zhangsan',(3,4,5)}
print(set1[0])


但是当我们需要创建一个空集合的时候,我们不能 set1 = {} ,因为这种方式是我们用来创建空字典的方式。如果我们想要创建空字典,需使用 set1 = set() 函数。

set1 = {}
print(type(set1))
set2 = set()
print(type(set2))
print(set2)

集合具有去重性

set1 = {1,2,10,10,20,20}
print(set1)


集合的特性

  1. 集合具有无序性,不支持下标操作。
  2. 集合具有去重性,可以自动去除掉重复的数据。


集合常见的操作

1)增加数据

😶‍🌫️ 1.add()

add函数可以增加单个数据,也可以增加序列。

set1 = {1,13.14,'zhangsan',(3,4,5)}
set1.add(80)
print(set1)
set1.add(('wangwu','zhaoliu'))
print(set1)

🥶 2.update()

update 增加数据只能增加序列,而不能增加单个数据。

set1 = {1,13.14,'zhangsan',(3,4,5)}
set1.update(1)
print(set1)

set1 = {1,13.14,'zhangsan',(3,4,5)}
set1.update((20,60))
print(set1)

update与add函数不同的是,add函数可以增加单个数据以及序列,而update函数只允许增加序列,并且add增加序列会将整个序列当成一个数据,而update增加序列,会将序列里的数据拆分成单个数据加入集合中。


2)删除数据

👺 1.remove()

remove函数删除指定的数据,但是如果集合中不含该数据,那么就会报错。

set1 = {1,13.14,'zhangsan',(3,4,5)}
set1.remove('zhangsan')
print(set1)

set1 = {1,13.14,'zhangsan',(3,4,5)}
set1.remove('lisi')


💀 2.discard()

discard删除指定的数据,如果集合中不存在也不会报错。

set1 = {1,13.14,'zhangsan',(3,4,5)}
set1.discard('zhangsan')
print(set1)
set1.discard('lisi')

😎 3.pop()

pop随机删除集合中的数据,并且返回这个数据。

set1 = {1,13.14,'zhangsan',(3,4,5)}
tmp = set1.pop()
print(set1)
print(tmp)

再次运行。


3)查找数据

in 查找数据是否在集合中,如果在则返回True,不存在返回Fasle。

not in 查找数据是否不在结合中,如果不存在返回True,存在返回False。

set1 = {1,13.14,'zhangsan',(3,4,5)}
print('zhangsan' in set1)
print('lisi' in set1)
print('zhangsan' not in set1)
print('lisi' not in set1)


相关文章
|
3天前
|
机器学习/深度学习 算法 数据挖掘
PYTHON银行机器学习:回归、随机森林、KNN近邻、决策树、高斯朴素贝叶斯、支持向量机SVM分析营销活动数据|数据分享-2
PYTHON银行机器学习:回归、随机森林、KNN近邻、决策树、高斯朴素贝叶斯、支持向量机SVM分析营销活动数据|数据分享
24 1
|
1天前
|
算法 数据可视化 Python
Python用MCMC马尔科夫链蒙特卡洛、拒绝抽样和Metropolis-Hastings采样算法
Python用MCMC马尔科夫链蒙特卡洛、拒绝抽样和Metropolis-Hastings采样算法
12 6
|
1天前
|
机器学习/深度学习 算法 搜索推荐
Python用机器学习算法进行因果推断与增量、增益模型Uplift Modeling智能营销模型
Python用机器学习算法进行因果推断与增量、增益模型Uplift Modeling智能营销模型
28 12
|
2天前
|
算法 数据可视化 大数据
圆堆图circle packing算法可视化分析电商平台网红零食销量采集数据
圆堆图circle packing算法可视化分析电商平台网红零食销量采集数据
31 13
|
2天前
|
机器学习/深度学习 算法 Python
数据分享|Python决策树、随机森林、朴素贝叶斯、KNN(K-最近邻居)分类分析银行拉新活动挖掘潜在贷款客户
数据分享|Python决策树、随机森林、朴素贝叶斯、KNN(K-最近邻居)分类分析银行拉新活动挖掘潜在贷款客户
20 4
|
2天前
|
机器学习/深度学习 算法 算法框架/工具
数据分享|PYTHON用KERAS的LSTM神经网络进行时间序列预测天然气价格例子
数据分享|PYTHON用KERAS的LSTM神经网络进行时间序列预测天然气价格例子
22 0
|
2天前
|
机器学习/深度学习 数据挖掘 网络架构
Python对商店数据进行lstm和xgboost销售量时间序列建模预测分析
Python对商店数据进行lstm和xgboost销售量时间序列建模预测分析
13 0
|
2天前
|
数据挖掘 数据处理 索引
如何使用Python的Pandas库进行数据筛选和过滤?
Pandas是Python数据分析的核心库,提供DataFrame数据结构。基本步骤包括导入库、创建DataFrame及进行数据筛选。示例代码展示了如何通过布尔索引、`query()`和`loc[]`方法筛选`Age`大于19的记录。
10 0
|
1月前
|
传感器 算法 计算机视觉
基于肤色模型和中值滤波的手部检测算法FPGA实现,包括tb测试文件和MATLAB辅助验证
该内容是关于一个基于肤色模型和中值滤波的手部检测算法的描述,包括算法的运行效果图和所使用的软件版本(matlab2022a, vivado2019.2)。算法分为肤色分割和中值滤波两步,其中肤色模型在YCbCr色彩空间定义,中值滤波用于去除噪声。提供了一段核心程序代码,用于处理图像数据并在FPGA上实现。最终,检测结果输出到"hand.txt"文件。
|
1月前
|
机器学习/深度学习 算法 计算机视觉
基于yolov2深度学习网络的视频手部检测算法matlab仿真
基于yolov2深度学习网络的视频手部检测算法matlab仿真

热门文章

最新文章