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)

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/7292.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

leetcode刷题记录

leetcode刷题记录 永远年轻 永远从零开始已刷题 永远年轻 永远从零开始 已刷题 剑指 Offer 05. 替换空格 字符串是不可变序列 新建一个列表复制原来的内容 在需要修改处进行修改 剑指 Offer 06. 从尾到头打印链表 python返回逆序数组 剑指 Offer 09. 用两个栈实现队列 创建两…

Idea整合Maven安装及配置教程(图文详解)

目录 友情提醒第一章、Maven概述1.1)Maven是什么1.2)Maven进行构建(build)的主要环节 第二章、Maven的下载安装和配置2.1)Maven的下载2.2)Maven环境变量配置2.3)Maven文件setting的配置 第三章、…

目标检测mAP

概述 AP (Average precision) is a popular metric in measuring the accuracy of object detectors like Faster R-CNN, SSD, etc. Average precision computes the average precision value for recall value over 0 to 1. It sounds complicated but actually pretty simple…

基于Java+SpringBoot+Vue前后端分离摄影分享网站平台系统

博主介绍:✌全网粉丝30W,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取源码联系🍅 👇🏻 精彩专…

【雕爷学编程】Arduino动手做(131)---跑马灯矩阵键盘模块

37款传感器与执行器的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止这37种的。鉴于本人手头积累了一些传感器和执行器模块,依照实践出真知(一定要动手做)的理念,以学习和交流为目的&am…

【uniapp开发小程序】实现粘贴一段文字后,自动识别到姓名/手机号/收货地址

一、需求 在uni-app中开发小程序&#xff0c;实现粘贴一段文字后自动识别到手机号&#xff0c;并将手机号前面的内容作为姓名&#xff0c;手机号后面的内容作为收货地址&#xff0c;并去除其中的特殊字符和前缀标识。 实现效果&#xff1a; 二、实现方式&#xff1a; <…

154个Bug!

持续测试了一个月的H5项目&#xff0c;终于迎来了上线日&#xff0c;在测试H5的过程中&#xff0c;遇到了一些坑&#xff0c;积累了些许经验&#xff0c;想着分享一下&#xff0c;希望对大家有所启发。 主要从以下一个方面展开&#xff1a; 一、项目背景 二、测试环境准备 三…

Ubuntu系统安装JDK教程

今天新买了一台阿里云服务器&#xff0c;因为centos 不提供了更新支持&#xff0c;所以Linux系统选择了Ubuntu 系统&#xff0c;今天就出一期 Ubuntu上安装的一系列教程&#xff0c;今天就先从JDK开始。 Ubuntu系统安装JDK教程 1、 jdk下载2、安装 lrzsz 命令 &#xff08;仅限…

【Cache】Squid代理服务器应用

文章目录 一、Squid 服务器的概念1. 代理服务器概述CDN 服务器 2. 代理的工作机制3. Squid 服务器的作用4. Squid 代理的类型 二、部署 Squid 服务器1. 安装 Squid 服务1.1 编译安装 Squid1.2 修改 Squid 的配置文件1.3 Squid 的运行控制1.4 创建 Squid 服务脚本1.5 supervisor…

均方误差,交叉熵损失函数举例计算

目录 Classification Error&#xff08;分类错误率&#xff09; Mean Squared Error (均方误差) 交叉熵损失函数 我们希望根据图片动物的轮廓、颜色等特征&#xff0c;来预测动物的类别&#xff0c;有三种可预测类别&#xff1a;猫、狗、猪。假设我们当前有两个模型&#xff0…

Appium: Windows系统桌面应用自动化测试(一)

Appium: Windows系统桌面应用自动化测试 一、方案调研二、环境搭建1、WinAppDriver环境搭建&#xff08;1&#xff09;开启开发者选项中的“开发人员模式”&#xff08;2&#xff09;windows sdk下载安装&#xff08;3&#xff09;WinAppDriver下载安装 2、appium环境搭建&…

开发者活动:云原生的开源 AI 大模型基础设施

随着 ChatGPT 的火热&#xff0c;大语言模型和相关应用不断涌现。你是否了解大语言模型的技术细节&#xff1f;你是否曾经开发过大语言模型应用&#xff1f;如果你对大语言模型背后的基础设施感兴趣&#xff0c;那么7月8号&#xff0c;北京海淀中关村创业大街&#xff0c;云原生…