python记录之集合
Python中的集合(Set)是一个无序且不包含重复元素的数据结构。集合主要用于成员检测和数据去重。
1. 集合的创建
在Python中,你可以使用大括号{}或set()函数来创建一个集合。注意,如果你使用大括号{}并且只包含一个元素,那么你需要在这个元素后面加上一个逗号,以区分空字典和只包含一个元素的集合。
# 使用大括号创建集合
set1 = {1, 2, 3, 4}# 使用set()函数创建集合
set2 = set([1, 2, 3, 4])# 只有一个元素的集合,需要加上逗号
set3 = {5,}# 空集合
set4 = set()
2. 集合的常用操作
2.1 添加元素
你可以使用add()方法向集合中添加一个元素,或者使用update()方法添加多个元素(可以是列表、元组或其他集合)。
set1 = {1, 2, 3}
set1.add(4) # 添加单个元素
set1.update([5, 6]) # 添加多个元素
2.2 删除元素
你可以使用remove()方法删除集合中的一个元素(如果该元素不存在,会引发KeyError异常)。你也可以使用discard()方法,它不会引发异常。此外,pop()方法会随机删除并返回集合中的一个元素(如果集合为空,会引发KeyError异常)。最后,你可以使用clear()方法清空整个集合。
set1 = {1, 2, 3, 4}
set1.remove(3) # 删除元素3
set1.discard(5) # 尝试删除元素5,但元素不存在,不会引发异常
print(set1.pop()) # 随机删除并返回一个元素
set1.clear() # 清空集合
2.3 集合运算
Python支持多种集合运算,包括并集、交集、差集和对称差集。
- 并集:使用
|运算符或union()方法。 - 交集:使用
&运算符或intersection()方法。 - 差集:使用
-运算符或difference()方法。 - 对称差集:使用
^运算符或symmetric_difference()方法。
set1 = {1, 2, 3, 4}
set2 = {3, 4, 5, 6}union_set = set1 | set2 # {1, 2, 3, 4, 5, 6}
intersection_set = set1 & set2 # {3, 4}
difference_set = set1 - set2 # {1, 2}
symmetric_difference_set = set1 ^ set2 # {1, 2, 5, 6}
2.4 集合的判断
你可以使用in和not in运算符来判断一个元素是否存在于集合中。
set1 = {1, 2, 3, 4}
print(2 in set1) # True
print(5 not in set1) # True
2.5 集合的其他方法
isdisjoint(other):检查两个集合是否没有交集。issubset(other)或<=:检查一个集合是否是另一个集合的子集。issuperset(other)或>=:检查一个集合是否是另一个集合的超集。len(set):返回集合中元素的数量。
3. 集合的应用场景
- 去重:集合是无序且不包含重复元素的数据结构,因此常用于数据去重。
- 成员检测:你可以使用
in和not in运算符来快速判断一个元素是否存在于集合中。 - 集合运算:在数据分析和处理中,集合运算常用于比较两个或多个数据集。
4. 注意事项
- 集合中的元素必须是不可变类型(如整数、浮点数、字符串、元组等),不能是列表、字典或其他可变类型。
- 集合是无序的,因此你不能通过索引来访问集合中的元素。
- 集合不支持索引、切片等操作。
相关文章:
python记录之集合
Python中的集合(Set)是一个无序且不包含重复元素的数据结构。集合主要用于成员检测和数据去重。 1. 集合的创建 在Python中,你可以使用大括号{}或set()函数来创建一个集合。注意,如果你使用大括号{}并且只包含一个元素ÿ…...
ResourceManager 的 rpc server 模型
一. yarn ResourceManager 的三种通信协议 ResourceTrackerProtocol NodeManager 和 ResourceManager 的 RPC 通信协议。其中 ResourceManager 充当RPC Server的角色,而 NodeManager 充当 RPC Client 的角色。NodeManager 通过该协议向 ResourceManager 注册、汇报…...
Java面试八股之什么是自动装箱和自动拆箱
什么是自动装箱和自动拆箱 在Java中,自动装箱(Autoboxing)和自动拆箱(Auto-unboxing)是两个与基本数据类型和它们对应的包装类之间的转换相关的特性。这两个概念自Java 5(也称为Java SE 5或JDK 5ÿ…...
OrangePi AIpro小试牛刀-目标检测(YoloV5s)
非常高兴参加本次香橙派AI Pro,香橙派联合华为昇腾打造的一款AI推理开发板评测活动,以前使用树莓派Raspberry Pi4B 8G版本,这次有幸使用国产嵌入式开发板。 一窥芳容 这款开发板搭载的芯片是和华为昇腾的Atlas 200I DK A2同款的处理器&#…...
QT案例 记录解决在管理员权限下QFrame控件获取拖拽到控件上的文件路径
参考知乎问答 Qt管理员权限如何支持拖放操作? 的回答和代码示例。 解决在管理员权限运行下,通过窗体的QFrame子控件获取到拖拽的内容。 目录标题 导读解决方案详解示例详细 【管理员权限】在QFrame控件中获取拖拽内容 【管理员权限】继承 IDropTarget 类…...
[HNCTF 2022 WEEK4]flower plus
第一种花指令 第二种花指令 根据两种花指令特征,写出去花指令脚本 saddr0x401000 eaddr0x435000 for i in range(saddr,eaddr):if get_wide_dword(i)0x01740275:print(hex(i),hex(get_wide_dword(i)))patch_byte(i-5,0x90)patch_dword(i-4,0x90909090)patch_dw…...
Mongo常用语法(java代码)
1、根据agentId字段分组,并对totalCustomerNum、refundCustomerNum字段 sum求和,同时取别名 Overridepublic List<AgentCountInfoBean> selectCurrentMonthNewResource(Set<String> orderTypeSet, List<String> agentIds,LocalDateTim…...
go语言后端开发学习(二)——基于七牛云实现的资源上传模块
前言 在之前的文章中我介绍过我们基于gin框架怎么实现本地上传图片和文本这类的文件资源(具体文章可以参考gin框架学习笔记(二) ——相关数据与文件的响应),但是在我们实际上的项目开发中一般却是不会使用本地上传资源的方式来上传的,因为文件的上传与读…...
探索微软新VLM Phi-3 Vision模型:详细分析与代码示例
引言 在最近的微软Build大会上,微软宣布了许多新内容,其中包括新款Copilot PC和围绕Copilot生态系统的一系列功能。其中最引人注目的是发布了一些新的Phi模型,特别是Phi-3 Vision模型。本文将详细探讨Phi-3 Vision模型的特性,并提…...
如何使用GPT-4o函数调用构建一个实时应用程序?
本教程介绍了如何使用OpenAI最新的LLM GPT-4o通过函数调用将实时数据引入LLM。 我们在LLM函数调用指南(详见https://thenewstack.io/a-comprehensive-guide-to-function-calling-in-llms/)中讨论了如何将实时数据引入聊天机器人和代理。现在,我们将通过将来自Fligh…...
[Vue-常见错误]浏览器显示Uncaught runtime errors
文章目录 错误描述正确写法具体如下 错误描述 当前端代码发生错误时,浏览器中出现以下错误提示。 正确写法 显然这不是我们所期望的,在vue.config.js中配置如下设置关闭Uncaught runtime errors显示 devServer: {client: {overlay: false}具体如下 …...
html常见的表单元素有哪些,html表单元素有哪些?
HTML中常用的表单元素包括:文本区域(TEXTAREA),列表框(SELECT),文本输入框(INPUT typetext),密码输入框(INPUT typepassword),单选输入框(INPUT typeradio),复选输入框(INPUT typecheckbox),重置…...
spring boot sso
代码:https://gitee.com/forgot940629/ssov2 授权服务 登录成功后,session中会存储UsernamePasswordAuthenticationToken,之后每次请求code时都会用UsernamePasswordAuthenticationToken生成OAuth2Authentication,并将OAuth2Aut…...
Keras深度学习框架实战(5):KerasNLP使用GPT2进行文本生成
1、KerasNLP与GPT2概述 KerasNLP的GPT2进行文本生成是一个基于深度学习的自然语言处理任务,它利用GPT-2模型来生成自然流畅的文本。以下是关于KerasNLP的GPT2进行文本生成的概述: GPT-2模型介绍: GPT-2(Generative Pre-trained …...
速盾:网站重生之我开了高防cdn
在互联网的广袤海洋中,网站就如同一个个独立的岛屿,面临着各种风雨和挑战。而作为一名专业程序员,我深知网站安全和性能的重要性。当我的网站遭遇频繁的攻击和访问压力时,我毅然决定开启高防 CDN,开启了一场网站的重生…...
【spark】spark列转行操作(json格式)
前言:一般我们列转行都是使用concat_ws函数或者concat函数,但是concat一般都是用于字符串的拼接,后续处理数据时并不方便。 需求:将两列数据按照设备id进行分组,每个设备有多个时间点位和对应值,将其一一对…...
记录一次Linux启动kafka后并配置了本地服务连接远程kafka的地址后依旧连接localhost的问题
问题的原因 我是使用docker来安装并启动kafka 的,所以在启动过程中并没有太多需要配置的地方,基本都是从网上照搬照抄,没动什么脑子,所以看着启动起来了觉得就没事了,但是运行项目的时候发现,我明明已经配…...
MacOS中Latex提示没有相关字体怎么办
在使用mactex编译中文的时候,遇到有些中文字体识别不到的情况,例如遇到识别不到Songti.ttc。其实这个时候字体是在系统里面的,但是只不过是latex没有找到正确的字体路径。 本文只针对于系统已经安装了字体库并且能够用find命令搜到࿰…...
物资材料管理系统建设方案(Word)—实际项目方案
二、 项目概述 2.1 项目背景 2.2 现状分析 2.2.1 业务现状 2.2.2 系统现状 三、 总体需求 3.1 系统范围 3.2 系统功能 3.3 用户分析 3.4 假设与依赖关系 四、 功能需求 4.4.11.7 非功能性需求 五、 非功能性需求 5.1 用户界面需求 5.2 软硬件环境需求 5.3 产品质量需求 5.4 接口…...
!力扣102. 二叉树的层序遍历
给你二叉树的根节点 root ,返回其节点值的 层序遍历 。 (即逐层地,从左到右访问所有节点)。 示例 1: 输入:root [3,9,20,null,null,15,7] 输出:[[3],[9,20],[15,7]] /*** Definition for…...
业务系统对接大模型的基础方案:架构设计与关键步骤
业务系统对接大模型:架构设计与关键步骤 在当今数字化转型的浪潮中,大语言模型(LLM)已成为企业提升业务效率和创新能力的关键技术之一。将大模型集成到业务系统中,不仅可以优化用户体验,还能为业务决策提供…...
7.4.分块查找
一.分块查找的算法思想: 1.实例: 以上述图片的顺序表为例, 该顺序表的数据元素从整体来看是乱序的,但如果把这些数据元素分成一块一块的小区间, 第一个区间[0,1]索引上的数据元素都是小于等于10的, 第二…...
智慧医疗能源事业线深度画像分析(上)
引言 医疗行业作为现代社会的关键基础设施,其能源消耗与环境影响正日益受到关注。随着全球"双碳"目标的推进和可持续发展理念的深入,智慧医疗能源事业线应运而生,致力于通过创新技术与管理方案,重构医疗领域的能源使用模式。这一事业线融合了能源管理、可持续发…...
python打卡day49
知识点回顾: 通道注意力模块复习空间注意力模块CBAM的定义 作业:尝试对今天的模型检查参数数目,并用tensorboard查看训练过程 import torch import torch.nn as nn# 定义通道注意力 class ChannelAttention(nn.Module):def __init__(self,…...
golang循环变量捕获问题
在 Go 语言中,当在循环中启动协程(goroutine)时,如果在协程闭包中直接引用循环变量,可能会遇到一个常见的陷阱 - 循环变量捕获问题。让我详细解释一下: 问题背景 看这个代码片段: fo…...
渗透实战PortSwigger靶场-XSS Lab 14:大多数标签和属性被阻止
<script>标签被拦截 我们需要把全部可用的 tag 和 event 进行暴力破解 XSS cheat sheet: https://portswigger.net/web-security/cross-site-scripting/cheat-sheet 通过爆破发现body可以用 再把全部 events 放进去爆破 这些 event 全部可用 <body onres…...
连锁超市冷库节能解决方案:如何实现超市降本增效
在连锁超市冷库运营中,高能耗、设备损耗快、人工管理低效等问题长期困扰企业。御控冷库节能解决方案通过智能控制化霜、按需化霜、实时监控、故障诊断、自动预警、远程控制开关六大核心技术,实现年省电费15%-60%,且不改动原有装备、安装快捷、…...
376. Wiggle Subsequence
376. Wiggle Subsequence 代码 class Solution { public:int wiggleMaxLength(vector<int>& nums) {int n nums.size();int res 1;int prediff 0;int curdiff 0;for(int i 0;i < n-1;i){curdiff nums[i1] - nums[i];if( (prediff > 0 && curdif…...
最新SpringBoot+SpringCloud+Nacos微服务框架分享
文章目录 前言一、服务规划二、架构核心1.cloud的pom2.gateway的异常handler3.gateway的filter4、admin的pom5、admin的登录核心 三、code-helper分享总结 前言 最近有个活蛮赶的,根据Excel列的需求预估的工时直接打骨折,不要问我为什么,主要…...
oracle与MySQL数据库之间数据同步的技术要点
Oracle与MySQL数据库之间的数据同步是一个涉及多个技术要点的复杂任务。由于Oracle和MySQL的架构差异,它们的数据同步要求既要保持数据的准确性和一致性,又要处理好性能问题。以下是一些主要的技术要点: 数据结构差异 数据类型差异ÿ…...
