当前位置: 首页 > news >正文

day10:01集合

1 作用

Python中的集合(Set)是一个无序的、不包含重复元素的容器。它主要用于去重、成员测试、以及执行数学上的集合运算(如并集、交集、差集和对称差集)等操作。集合的内部实现通常基于哈希表,这提供了快速的成员测试能力。集合的这些特性使其成为处理无需排序且不包含重复项的数据时的理想选择。

1.1 关系运算

friends1 = ["zero","kevin","jason","egon"]
friends2 = ["Jy","ricky","jason","egon"]l=[]
for x in friends1:if x in friends2:l.append(x)
print(l)

1.2 去重

定义一个包含重复元素的列表

my_list = [1, 2, 2, 3, 4, 4, 5]# 使用集合进行去重  
# 注意:集合是无序的,所以结果列表的顺序可能会改变  
my_set = set(my_list)
print(my_set)  ## {1, 2, 3, 4, 5}# 如果需要,可以将结果转换回列表  
my_list_unique = list(my_set)# 打印结果  
print(my_list_unique)  ## [1, 2, 3, 4, 5]

2 定义:

在{}内用逗号分隔开多个元素,多个元素满足以下三个条件

  1. 集合内元素必须为不可变类型
  2. 集合内元素无序
  3. 集合内元素没有重复
s={1,2} # s=set({1,2})s={1,[1,2]} # 集合内元素必须为不可变类型
s={1,'a','z','b',4,7} # 集合内元素无序
s={1,1,1,1,1,1,'a','b'} # 集合内元素没有重复
print(s)

2.1 了解

s={} # 默认是空字典
print(type(s))

2.2定义空集合

s=set()
print(s,type(s))

3 类型转换

set({1,2,3})
res=set('hellolllll')
print(res)print(set([1,1,1,1,1,1]))
print(set([1,1,1,1,1,1,[11,222]]) # 报错print(set({'k1':1,'k2':2}))

4 内置方法

并集(|)、交集(&)、差集(-)和对称差集(^)等,这些操作在处理集合数据时非常有用。

=关系运算符=

friends1 = {“zero”,“kevin”,“jason”,“egon”}
friends2 = {“Jy”,“ricky”,“jason”,“egon”}

4.1 取交集:两者共同的好友

res=friends1 & friends2
print(res)
print(friends1.intersection(friends2))

4.2 取并集/合集:两者所有的好友

print(friends1 | friends2)
print(friends1.union(friends2))

4.3 取差集:取friends1独有的好友

print(friends1 - friends2)
print(friends1.difference(friends2))

取friends2独有的好友

print(friends2 - friends1)
print(friends2.difference(friends1))

4.4 对称差集: 求两个用户独有的好友们(即去掉共有的好友)

print(friends1 ^ friends2)
print(friends1.symmetric_difference(friends2))

4.5 父子集:包含的关系

s1={1,2,3}
s2={1,2,4}
#不存在包含关系,下面比较均为False
print(s1 > s2)
print(s1 < s2)
s1={1,2,3}
s2={1,2}
print(s1 > s2) # 当s1大于或等于s2时,才能说是s1是s2他爹
print(s1.issuperset(s2))
print(s2.issubset(s1)) # s2 < s2  =>Trues1={1,2,3}
s2={1,2,3}
print(s1 == s2) # s1与s2互为父子
print(s1.issuperset(s2))
print(s2.issuperset(s1))

=去重=

4.6 只能针对不可变类型去重

print(set([1,1,1,1,2]))

4.7 无法保证原来的顺序

if dic not in new_l: 这行代码检查当前遍历到的字典 dic 是否不在 new_l 列表中。如果不在,说明这是一个新的(即之前未出现过的)字典,应该被添加到 new_l 中。
new_l.append(dic) 如果上述条件为真,则将 dic 添加到 new_l 列表中。

l=[1,'a','b','z',1,1,1,2]
l=list(set(l))
print(l)l=[{'name':'lili','age':18,'sex':'male'},{'name':'jack','age':73,'sex':'male'},{'name':'tom','age':20,'sex':'female'},{'name':'lili','age':18,'sex':'male'},{'name':'lili','age':18,'sex':'male'},
]
new_l=[]
for dic in l:if dic not in new_l:new_l.append(dic)print(new_l)

5 其他操作

5.1 长度

s={'a','b','c'}
len(s)>>3

5.2 成员运算

'c' in s>>True

5.3 循环

 for item in s:print(item)c
a
b

6 需要掌握的其他内置方法

6.1 方法1:discard

s={1,2,3}
s.discard(4) # 删除元素不存在do nothing
print(s)
s.remove(4) # 删除元素不存在则报错

6.2 方法2:update

s={1,2,3}
s.update({1,3,5})
print(s)

6.3 方法3:pop

s={1,2,3}
res=s.pop()
print(res)# 需要掌握的内置方法4:add
s.add(4)
print(s)

7.其余方法全为了解

7.1 isdisjoint

isdisjoint(): 方法用于判断两个集合是否没有交集。如果两个集合没有交集,则返回 True;否则返回 False

set1 = {1, 2, 3, 4}  
set2 = {5, 6, 7, 8}  
print(set1.isdisjoint(set2))  # 输出: True  set3 = {3, 4, 5}  
print(set1.isdisjoint(set3))  # 输出: False

7.2 difference_update

ifference_update(): 方法用于从集合中移除那些也出现在指定集合(或可迭代对象)中的所有元素。这个方法是就地(in-place)修改集合的,即它会直接修改调用它的集合,而不是返回一个新的集合。

set1 = {1, 2, 3, 4, 5}  
set2 = {4, 5, 6, 7}  '''使用 difference_update() 移除 set1 中与 set2 相同的元素  '''
set1.difference_update(set2)  print(set1)  # 输出: {1, 2, 3}  '''注意:set1 已经被修改了'''

相关文章:

day10:01集合

1 作用 Python中的集合&#xff08;Set&#xff09;是一个无序的、不包含重复元素的容器。它主要用于去重、成员测试、以及执行数学上的集合运算&#xff08;如并集、交集、差集和对称差集&#xff09;等操作。集合的内部实现通常基于哈希表&#xff0c;这提供了快速的成员测试…...

03浅谈提示工程、RAG和微调

03浅谈提示工程、RAG和微调 提示词Prompt Prompt&#xff08;提示词&#xff09;是指在使用大模型时&#xff0c;向模型提供的一些指令或问题。这些指令作为模型的输入&#xff0c;引导模型产生所需要的输出。例如&#xff0c;在生成文本时&#xff0c;Prompt可能是一个问题或…...

硅纪元视角 | AI纳米机器人突破癌症治疗,精准打击肿瘤细胞

在数字化浪潮的推动下&#xff0c;人工智能&#xff08;AI&#xff09;正成为塑造未来的关键力量。硅纪元视角栏目紧跟AI科技的最新发展&#xff0c;捕捉行业动态&#xff1b;提供深入的新闻解读&#xff0c;助您洞悉技术背后的逻辑&#xff1b;汇聚行业专家的见解&#xff0c;…...

刷代码随想录有感(125):动态规划——最长公共子序列

题干&#xff1a; 代码&#xff1a; class Solution { public:int longestCommonSubsequence(string text1, string text2) {vector<vector<int>>dp(text1.size() 1, vector<int>(text2.size() 1, 0));for(int i 1; i < text1.size(); i){for(int j …...

Linux和mysql中的基础知识

cpu读取的指令大部分在内存中&#xff08;不考虑缓存&#xff09; 任何程序在运行之前都的加入到内存。 eip->pc指针&#xff0c;指明当前指令在什么位置。 代码大概率是从上往下执行的&#xff0c;基于这样的基本理论。既可以将一部分指令加载到CPU对应的缓存中&#xf…...

ArcGIS Pro SDK (七)编辑 12 编辑模版

ArcGIS Pro SDK &#xff08;七&#xff09;编辑 12 编辑模版 文章目录 ArcGIS Pro SDK &#xff08;七&#xff09;编辑 12 编辑模版1 在图层上按名称查找编辑模板2 查找属于独立表的表模板3 当前模板4 更改模板的默认编辑工具5 隐藏或显示模板上的编辑工具6 使用图层创建新模…...

数据结构底层之HashMap(面经篇1)

1 . 讲一下hashmap的数据结构 HashMap是一种基于哈希表实现的数据结构&#xff0c;通常用于关联键值对&#xff0c;其中键是唯一的&#xff0c;而值可以重复。在Java中&#xff0c;HashMap是java.util.Map接口的一个实现&#xff0c;它提供了快速的查找、插入和删除操作。 数据…...

昇思学习打卡-6-基于MindSpore的GPT2文本摘要

第一次近距离接触GPT&#xff0c;了解了tokenizers这个分词库&#xff0c;感觉NLP和CV对比起来&#xff0c;处理流程基本一致&#xff0c;都是数据集加载和处理&#xff0c;模型构建、选择学习率、模型训练&#xff0c;进而可以使用模型进行推理。 不同的是&#xff0c;NLP可能…...

代码随想录算法训练营第2天|LeetCode977,209,59

977.有序数组平方 题目链接&#xff1a; 977. 有序数组的平方 - 力扣&#xff08;LeetCode&#xff09; 文章讲解&#xff1a;代码随想录 视频讲解&#xff1a; 双指针法经典题目 | LeetCode&#xff1a;977.有序数组的平方_哔哩哔哩_bilibili 第一想法 暴力算法肯定是先将元素…...

Web前端开发——HTML快速入门

HTML&#xff1a;控制网页的结构CSS&#xff1a;控制网页的表现 一、什么是HTML、CSS &#xff08;1&#xff09;HTML &#xff08;HyperText Markup Languaqe&#xff1a;超文本标记语言&#xff09; 超文本&#xff1a;超越了文本的限制&#xff0c;比普通文本更强大。除了…...

浅谈http协议及常见的面试题

1、浅谈http协议 HTTP&#xff08;Hypertext Transfer Protocol&#xff09;超文本传输协议&#xff0c;是互联网上应用最为广泛的一种网络协议&#xff0c;所有的WWW文件都必须遵守这个标准。它是基于TCP/IP通信协议来传递数据&#xff08;HTML文件、图片文件、查询结果等&am…...

LabVIEW自动探头外观检测

开发了一套基于LabVIEW的软件系统&#xff0c;结合视觉检测技术&#xff0c;实现探头及连接器外观的自动检测。通过使用高分辨率工业相机、光源和机械手臂&#xff0c;系统能够自动定位并检测探头表面的细微缺陷&#xff0c;如划痕、残胶、异色、杂物等。系统支持多种探头形态&…...

搏击与防卫笔记

文章目录 降龙十八掌 咏春个人防身笔记防卫直拳应对耳光防卫摆拳坐马冲拳 本来想以武术为标题的&#xff0c;想了想武术这个标题太大太深&#xff0c;自己连一知半解都算不上&#xff0c;就谢为搏击与防卫吧。 每个男孩都有个武侠梦&#xff0c;独步江湖&#xff0c;仗剑走天涯…...

泰国内部安全行动司令部数据泄露

BreachForums 论坛的一名成员宣布发生一起重大数据泄露事件&#xff0c;涉及泰国内部安全行动司令部 (ISOC)&#xff0c;该机构被称为泰国皇家武装部队的政治部门。 目前&#xff0c;我们无法准确确认此次泄露的真实性&#xff0c;因为该组织尚未在其网站上发布有关该事件的任…...

MATLAB算法实战应用案例精讲-【数模应用】分层聚类(附MATLAB、python和R语言代码实现)

目录 前言 几个高频面试题目 什么情况下选择分层聚类,什么情况下选择K-mean聚类呢?两种模型的好坏如何比较? 算法原理 SPSSAU 案例分析 SPSSPRO 1、作用 2、输入输出描述 3、案例示例 4、案例数据 5、案例操作 6、输出结果分析 7、注意事项 8、模型理论 分层…...

九、函数的声明和定义

函数声明&#xff1a; 1. 告诉编译器有一个函数叫什么&#xff0c;参数是什么&#xff0c;返回类型是什么。但是具体是不是存在&#xff0c;函数 声明决定不了。 2. 函数的声明一般出现在函数的使用之前。要满足先声明后使用。 3. 函数的声明一般要放在头文件中的。 定义的函…...

简洁纯文字类的Typecho主题wenso

主题介绍 文章说说类博客网站源码&#xff0c;页面清新简洁。适合文章说说美文博客网站建站使用&#xff0c;响应式手机版本。 本来是dedecms的模板&#xff0c;也比较简单&#xff0c;适合用来搭建一个文学类的&#xff0c;纯文字的网站&#xff0c;简单的改成了typecho&…...

安卓请求服务器[根据服务器的内容来更新spinner]

根据服务器的内容来更新spinner 本文内容请结合如下两篇文章一起看: 腾讯云函数node.js返回自动带反斜杠 腾讯云函数部署环境[使用函数URL] 现在有这样一个需求,APP有一个下拉选择框作为版本选择,因为改个管脚就变成一个版本,客户需求也很零散,所以后期会大量增加版本,这时候每…...

c++ 联合(Union)的特性和使用

联合&#xff08;Union&#xff09;是一种特殊的数据结构&#xff0c;允许在同一内存位置存储不同的数据类型。一个 union 可以有多个数据成员&#xff0c;但是在任意时刻只有一个数据成员可以有值。当某个成员被赋值后其他成员变为未定义状态。以下是联合的主要特点和使用方式…...

大白菜U盘启动工具

大白菜如何u盘启动进winpe装系统大白菜是一款非常实用的U盘启动盘制作工具&#xff0c;可以帮助用户快速地将U盘制作成启动盘&#xff0c;从而方便地进行系统安装、维护和修复等操作。官方网站&#xff1a; 大白菜u盘启动盘制作工具_大白菜u盘装系统_大白菜pe_大白菜官网-首页…...

WarcraftHelper:魔兽争霸3终极兼容性增强插件完全指南

WarcraftHelper&#xff1a;魔兽争霸3终极兼容性增强插件完全指南 【免费下载链接】WarcraftHelper Warcraft III Helper , support 1.20e, 1.24e, 1.26a, 1.27a, 1.27b 项目地址: https://gitcode.com/gh_mirrors/wa/WarcraftHelper WarcraftHelper是一款专为《魔兽争霸…...

告别误报!用SCTransNet+Transformer搞定红外小目标检测(附PyTorch实战代码)

突破红外小目标检测瓶颈&#xff1a;SCTransNet与Transformer的实战融合在安防监控、遥感测绘和军事预警等关键领域&#xff0c;红外小目标检测技术正面临前所未有的挑战。当目标尺寸小于1010像素、信噪比低于2dB时&#xff0c;传统算法在复杂背景下的误报率往往高达30%以上。这…...

告别无效编程!Cursor + 高德地图实战,解锁AI开发效率密码

当GitHub Copilot还在逐行补全代码时&#xff0c;Cursor已经让开发者用"聊天"的方式写项目了。从Cursor的四大快捷键到AI幻觉的实战应对&#xff0c;从Vibe Coding的前沿理念到高德地图的AI落地实践&#xff0c;本文将带你深度理解AI编程的现在与未来。 目录 一、Cur…...

第一次了解昇腾 NPU 的图编译?从 ge 开始

前言 当你第一次尝试把 PyTorch 模型放到昇腾 NPU 上跑的时候&#xff0c;大概率会遇到这个问题&#xff1a;模型加载成功了&#xff0c;但推理速度慢得让人怀疑人生。或者更糟糕&#xff1a;模型加载失败&#xff0c;报错说某些算子不支持。 这些问题的根源&#xff0c;通常…...

纯前端到底要不要学 Java

最近被问了好几次&#xff1a;纯前端有没有必要学 Java。这问题其实没有标准答案&#xff0c;得看你现在在做什么、后面想往哪走。如果你平时的工作就是调 RESTful 接口、拿数据渲染页面&#xff0c;后端全给你包好了&#xff0c;那 Java 不学完全没问题。把 React、Vue 这些前…...

DMA优化与MIMO系统性能分析:6G通信关键技术

1. DMA优化与MIMO系统性能分析概述动态超表面天线&#xff08;Dynamic Metasurface Antenna, DMA&#xff09;作为6G通信系统的关键技术突破&#xff0c;正在重新定义大规模MIMO系统的设计范式。与传统的相控阵天线相比&#xff0c;DMA通过可编程的超表面单元实现对电磁波的精确…...

机器学习算法选择的统计推断:从p值到保形预测的实战指南

1. 项目概述&#xff1a;当算法选择遇上统计推断在机器学习驱动的设计任务里&#xff0c;比如设计一个能高效结合特定蛋白质的RNA序列&#xff0c;或者优化一个酶分子&#xff0c;我们手头往往不只有一种设计算法。相反&#xff0c;我们有一个“菜单”&#xff0c;里面列着各种…...

拉格朗日平衡传播:动态系统的梯度估计新方法

1. 拉格朗日平衡传播的理论框架1.1 能量基模型与平衡传播基础能量基模型&#xff08;Energy-Based Models, EBMs&#xff09;的核心思想是将预测问题转化为能量最小化问题。这类模型通过定义能量函数E(s,θ,x)来描述系统状态s与参数θ、输入x之间的关系&#xff0c;模型的预测输…...

QuickLyric终极指南:如何在Android上免费获取自动同步歌词

QuickLyric终极指南&#xff1a;如何在Android上免费获取自动同步歌词 【免费下载链接】QuickLyric Android app that instantly fetches your lyrics for you. 项目地址: https://gitcode.com/gh_mirrors/qu/QuickLyric 你是否厌倦了手动搜索歌词的繁琐&#xff1f;Qui…...

安卓高版本APP抓包实战:破解证书校验与NetworkSecurityConfig

1. 为什么高版本安卓APP抓包越来越像“拆弹”——从系统证书机制说起你有没有试过&#xff0c;把BurpSuite配好代理、雷电模拟器9开起来、APP一启动就报“网络连接异常”&#xff1f;或者更魔幻的&#xff1a;APP能打开&#xff0c;但所有接口请求在Burp里压根不出现&#xff0…...