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

【python 基础篇 八】python的常用数据类型操作-------集合

目录

      • 1.集合的基本概念
      • 2.集合的定义
        • 2.1 可变集合 set定义
        • 2.2 不可变集合 fronzenset 定义
        • 2.3 集合定义的注意事项
      • 3.单一集合的常用操作
      • 4. 集合之间操作
        • 4.1 交集
        • 4.2 并集
        • 4.3 差集
        • 4.4 判定

1.集合的基本概念

  • 无序的,不可随机访问的,不可重复的元素集合
  • 与数学中集合的概念类似,可对其进行交,并,差,补等逻辑运算
  • 可分为可变集合和不可变集合
    • set 可变集合 增删改
    • fronzenset 不可变集合 创建好之后,无法增删改

2.集合的定义

2.1 可变集合 set定义

  • s = {1,2,3,4}
  • s = set(iterable) 可以字符串,列表,元组,字典,集合变成一个集合
#可变集合的定义
s = {1,2,3}
print(s,type(s))#输出 {1, 2, 3} <class 'set'>s1 = set("abchd")#字符串
s2 = set([1,2,3,5])#列表
s3 = set((1,2,3,4,))#元组
s4 = set({1:2,"as":3})
print(s1,type(s1))#输出{'h', 'b', 'a', 'd', 'c'} <class 'set'>
print(s2,type(s2))#输出{1, 2, 3, 5} <class 'set'>
print(s3,type(s3))#输出{1, 2, 3, 4} <class 'set'>
print(s4,type(s4))#输出{1, 'as'} <class 'set'>

2.2 不可变集合 fronzenset 定义

  • fs = frozenset(iterable) 其中iterable可以是字符串,列表,元组,字典等。但是为字典时,只会提取key作为set的元素

2.3 集合定义的注意事项

  • 创建一个空集合时,需要使用set()或者frozenset(),不能使用 s = {} 因为这样会被识别成字典
  • 集合中的元素,必须是可哈希的值。如果一个对象在自己的生命周期中有一哈希值(hash value)是不可改变的,那么它就是可哈希的
  • 如果集合中的元素出现重复,则会被合并为1个

3.单一集合的常用操作

3.1 可变集合

  • 增加操作 add()
    • s.add()
  • 删除操作
    • s.remove(element)
      • 指定删除set对象中的一个元素,如果集合中没有这个元素,则返回一个错误
    • s.discare(element)
      • 指定删除set对象中的一个元素,如果集合中没有这个元素,则不做任何事情
    • s.pop()
      • 随机删除并返回一个集合中的元素,若集合为空,则返回一个错误
    • s.clear()
      • 清空一个集合中的所有元素
  • 查询操作
    • 通过for in进行遍历
    • 通过迭代器进行访问
#增加操作
s = {1,2,3,4}
s.add(5)
print(s)#输出 {1, 2, 3, 4, 5}
s.add([1,2,3])#报错 因为[1,2,3]是可变哈希值#删除操作
s = {1,2,3,4}
result = s.remove(2)
print(result,s)#输出 None {1, 3, 4}  如果集合中没有这个元素,则返回一个错误s = {1,2,3,4}
result = s.remove(2)
print(result,s)#输出 None {1, 3, 4}  如果集合中没有这个元素,则不做任何操作s = {1,2,3,4}
result = s.pop()
print(result,s)#输出 1 {2, 3, 4}如果集合为空,则返回一个错误s = {1,2,3,4}
s.clear()
print(s)#{}#查询操作
#for in 遍历
s = {1,2,3,4,5}
for x in s:print(x)#通过迭代器
#1.生成一个迭代器
s = {1,2,3,4,5}
its = iter(s)
#2.使用这个迭代器去访问
for x in its:print(x)

3.2 不可变集合

  • 不能增删改
  • 查询操作
    • 通过for in进行遍历
    • 通过迭代器进行访问
#查询操作
#for in 遍历
s = frozenset([1,2,3,4,5])
for x in s:print(x)#通过迭代器
#1.生成一个迭代器
s = frozenset([1,2,3,4,5])
its = iter(s)
#2.使用这个迭代器去访问
for x in its:print(x)

4. 集合之间操作

4.1 交集

  • intersection(Iterable)
    • 字符串 只判断字符串中的非数字
    • 列表
    • 元组
    • 字典 值判断key
    • 集合
  • &
  • intersection_update(…)
#intersection
s1 = {1,2,3,4,5}
s2 = {4,5,6}
result = s1.intersection(s2)
print(result,type(result))#输出 {4, 5} <class 'set'>s1 = frozenset([1,2,3,4,5])
s2 = {4,5,6}
result = s1.intersection(s2)
print(result,type(result))#输出 {4, 5} <class 'frozenset'>  输出结果为不可变集合  
#当result = s2.intersection(s1)时,输出结果为输出 {4, 5} <class 'set'> 集合为可变集合
#交集的输出时,是以前面为基准的#& 作用与上一个一样
s1 = {1,2,3,4,5}
s2 = {4,5,6}
result = s1 & s2#intersection_update()的作用和前两者一样,但是会修改原集合。

4.2 并集

  • union()
  • |
  • update()
#union
s1 = {1,2,3,4,5}
s2 = {4,5,6}
result = s1.union(s2)
print(result,type(result))#输出 {1,2,3,4,5,6} <class 'set'>s1 = frozenset([1,2,3,4,5])
s2 = {4,5,6}
result = s1.union(s2)
print(result,type(result))#输出 {1,2,3,4,5,6} <class 'frozenset'>  输出结果为不可变集合  
#当result = s2.intersection(s1)时,输出结果为输出 {1,2,3,4,5,6} <class 'set'> 集合为可变集合
#并集的输出时,是以前面为基准的#| 作用与上一个一样
s1 = {1,2,3,4,5}
s2 = {4,5,6}
result = s1 | s2#update()的作用和前两者一样,但是会修改原集合。

4.3 差集

  • defference()
  • 算术运算符 -
  • defference_update()

4.4 判定

  • isdisjoint() 两个集合不相交
  • issuperset() 一个集合包含另一个集合全部元素
  • issubset() 一个集合包含于另一个集合部分元素
s1 = {1,2,3,4,5}
s2 = {4,5,6}
print(s1.isdisjoint(s2))#输出 Falses1 = {1,2,3,4,5}
s2 = {3,4,5}
print(s1.issuperset(s2))#输出 True  s2是s1的完全子集合s1 = {1,2,3,4,5}
s2 = {4,5}
print(s1.issubset(s2))#输出 True  s2是s1的子集合

相关文章:

【python 基础篇 八】python的常用数据类型操作-------集合

目录1.集合的基本概念2.集合的定义2.1 可变集合 set定义2.2 不可变集合 fronzenset 定义2.3 集合定义的注意事项3.单一集合的常用操作4. 集合之间操作4.1 交集4.2 并集4.3 差集4.4 判定1.集合的基本概念 无序的&#xff0c;不可随机访问的&#xff0c;不可重复的元素集合与数学…...

Spring框架中问题补充

BeanFactory 和 ApplicationContext BeanFactory和ApplicationContext是接口。BeanFactory接口时spring框架的顶层接口&#xff0c;定义管理bean的最基本的方法&#xff0c;例如获取实例、判断等功能。 DefaultListableBeanFactory实现BeanFactory 接口,是主要的创建bean的工…...

【Leedcode】顺序表必备的三道面试题(附图解)

顺序表必备的三道面试题&#xff08;附图解&#xff09; 文章目录顺序表必备的三道面试题&#xff08;附图解&#xff09;前言一、第一题1.题目2.思路图解3.源码二、第二题1.题目2.思路图解3.源码三、第三题1.题目2.思路图解3.源码总结前言 本文给大家介绍三道顺序表学习过程中…...

SOFA Weekly|开源人、本周贡献 issue 精选

SOFA WEEKLY | 每周精选 筛选每周精华问答&#xff0c;同步开源进展欢迎留言互动&#xff5e;SOFAStack&#xff08;Scalable Open Financial Architecture Stack&#xff09;是蚂蚁集团自主研发的金融级云原生架构&#xff0c;包含了构建金融级云原生架构所需的各个组件&#…...

2023美赛 ICM E题详细版思路

问题E&#xff1a;光污染注&#xff1a;楷体为题目原文&#xff0c;宋体为思路部分首先&#xff0c;我们需要考虑的就是美赛ABEF的核心问题&#xff0c;数据。这里E题是以光污染为背景的题目&#xff0c;首当其冲的我们就需要收集一些数据以支撑我们的模型。对于E题提出的问题&…...

【LeetCode】剑指 Offer(3)

目录 写在前面&#xff1a; 题目&#xff1a;剑指 Offer 09. 用两个栈实现队列 - 力扣&#xff08;Leetcode&#xff09; 题目的接口&#xff1a; 解题思路&#xff1a; 代码&#xff1a; 过啦&#xff01;&#xff01;&#xff01; 写在最后&#xff1a; 写在前面&…...

springboot simple (13) springboot Elasticsearch(Elasticsearch8.5.1)

这里首先简单的介绍了Elasticsearch&#xff0c;然后实现了springboot集成Elasticsearch。 版本&#xff1a; Elasticsearch&#xff1a;v8.5.1 Kibana&#xff1a;v8.5.1 springboot集成elasticsearch有两种方式。 1&#xff09;rest客户端RestHingLevelClient&#xff1b; …...

《爆肝整理》保姆级系列教程python接口自动化(十七)--Json 数据处理---一次爬坑记(详解)

简介 有些 post 的请求参数是 json 格式的&#xff0c;这个前面发送post 请求里面提到过&#xff0c;需要导入 json模块处理。现在企业公司一般常见的接口因为json数据容易处理&#xff0c;所以绝大多数返回数据也是 json 格式的&#xff0c;我们在做判断时候&#xff0c;往往只…...

分享111个HTML旅游交通模板,总有一款适合您

分享111个HTML旅游交通模板&#xff0c;总有一款适合您 111个HTML旅游交通模板下载链接&#xff1a;https://pan.baidu.com/s/1VHJSBVJbj4PQpPAwxysJBg?pwd8b17 提取码&#xff1a;8b17 Python采集代码下载链接&#xff1a;采集代码.zip - 蓝奏云 汽车租赁平台网页模板 汽…...

guava中ImmutableList使用示例详解

ImmutableList是一个不可变、线程安全的列表集合&#xff0c;它只会获取传入对象的一个副本&#xff0c;而不会影响到原来的变量或者对象&#xff0c;如下代码&#xff1a; int a 23;ImmutableList<Integer> list ImmutableList.of(a, 12);System.out.println(list);a …...

ASE28N50-ASEMI高压N沟道MOS管ASE28N50

编辑-Z ASE28N50在TO-247封装里的静态漏极源导通电阻&#xff08;RDS(ON)&#xff09;为200mΩ&#xff0c;是一款N沟道高压MOS管。ASE28N50的最大脉冲正向电流ISM为110A&#xff0c;零栅极电压漏极电流(IDSS)为1uA&#xff0c;其工作时耐温度范围为-55~150摄氏度。ASE28N50功…...

MyBatis缓存

文章目录MyBatis的缓存1、缓存概述2、MyBatis的一级缓存2.1 一级缓存的使用2.2 一级缓存的失效3、MyBatis的二级缓存3.1 二级缓存的开启3.2 二级缓存的失效3.2 二级缓存相关配置4、系统缓存的查询顺序5、EHCache的使用5.1 EHCache基本介绍5.2 EHCache的基本使用5.3 EHCache配置…...

Linux环境下(CentOS 7)安装Java(JDK8)

Linux环境下(CentOS 7)安装Java(JDK8) 一、安装教程 1.1 首先&#xff0c;进入oracle官网下载jdk8的安装包&#xff0c;下载地址如下&#xff0c;这里以 jdk-8u121-linux-x64.tar.gz安装包为例。 http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-21…...

基于STM32L431+Liteos的串口空闲中断加DMA循环接收

①MCU为STM32L431&#xff0c;使用串口2。 ②Liteos采用接管中断的方式。 STM32CubeMX配置生成串口代码&#xff1a; 串口DMA接收和发送配置区别是接收采用循环模式&#xff0c;发送为正常模式。 将生成的代码移植到liteos工程中&#xff0c;由于使用的接管中断的方式&#…...

BZOJ4403 序列统计

题目描述 给定三个正整数N、L和R&#xff0c;统计长度在1到N之间&#xff0c;元素大小都在L到R之间的单调不降序列的数量。输出答案对106310^631063取模的结果。 输入 输入第一行包含一个整数T&#xff0c;表示数据组数。 第2到第T1行每行包含三个整数N、L和R&#xff0c;N、…...

如何正确使用 钳位二极管

在电路设计中,经常遇到需要IO保护的场景,比如ADC采样,GPIO接收电平信号等。 常见的保护方法有分压,限幅,限流等。本次我们讨论限幅方法中的 钳位二极管。 我们以BAT54S为例,它的符号是这样的, 而在很多手册里,我们可以看到,一般是这样使用的: 因此,我设计了简化…...

【C语言进阶】动态内存管理

&#x1f466;个人主页&#xff1a;Weraphael ✍&#x1f3fb;作者简介&#xff1a;目前是C语言学习者 ✈️专栏&#xff1a;C语言航路 &#x1f40b; 希望大家多多支持&#xff0c;咱一起进步&#xff01;&#x1f601; 如果文章对你有帮助的话 欢迎 评论&#x1f4ac; 点赞&a…...

第一批因ChatGPT坐牢的人,已经上路了

大家好&#xff0c;我是 Jack。 ChatGPT 的火爆有目共睹&#xff0c;有人靠着它赚了第一桶金&#xff0c;也有人靠着它即将吃上第一顿牢饭。 任何一件东西的火爆&#xff0c;总会给一些聪明人带来机会。 艾尔登法环火的时候&#xff0c;一堆淘宝卖魂的&#xff1b;羊了个羊火…...

Eclipse下Maven的集成

Eclipse下Maven的集成 2.1指定本地maven环境 参考&#xff1a;Eclipse的Maven创建_叶书文的博客-CSDN博客_eclipse创建maven项目 指定用本地maven指定maven仓库设置和地址2.2创建maven项目 1.新建 2.目录设置 3.坐标设置&#xff08;随便写就行&#xff09; 4.目录结构 2.3配置…...

Elasticsearch7学习笔记(尚硅谷)

文章目录一、ElasticSearch概述1、ElasticSearch是什么2、全文搜索引擎3、ElasticSearch 和 Solr3.1 概述3.2 比较总结二、Elasticsearch入门1、Elasticsearch安装1.1 下载使用1.2 数据格式2、索引操作3、文档操作&#xff08;了解&#xff09;3.1 创建文档3.2 文档查询3.3 文档…...

前端学习第一阶段-第7章 品优购电商项目

7-1 品优购项目介绍及准备工作 01-品优购项目导读 02-网站制作流程 03-品优购项目规划 04-品优购项目搭建 05-品优购项目-样式的模块化开发 06-品优购项目-favicon图标制作 07-品优购项目-TDK三大标签SEO优化 7-2 首页Header区域实现 08-品优购首页-快捷导航shortcut结构搭建 0…...

cocos2dx 4.0 - cpp - pc版 环境搭建

开发环境vs2022 cocos2dx4.0 python2.7.18 cmake3.25安装教程&#xff08;环境搭建&#xff09;安装VS2022-Community&#xff0c; 勾选c进行安装安装cmake3.25, 勾选环境变量进行安装安装python2.7.18, 勾选环境变量进行安装下载cocos2dx4.0并解压配置cocos2dx:运行cmd,进入…...

剑指 Offer 53 - I. 在排序数组中查找数字 I

原题链接 难度&#xff1a;easy\color{Green}{easy}easy 题目描述 统计一个数字在排序数组中出现的次数。 示例 1: 输入: nums [5,7,7,8,8,10], target 8 输出: 2示例 2: 输入: nums [5,7,7,8,8,10], target 6 输出: 0提示&#xff1a; 0<nums.length<1050 <…...

华为OD机试 - 删除指定目录(Python) | 机试题算法思路 【2023】

最近更新的博客 华为OD机试 - 热点网络统计 | 备考思路,刷题要点,答疑 【新解法】 华为OD机试 - 查找单入口空闲区域 | 备考思路,刷题要点,答疑 【新解法】 华为OD机试 - 好朋友 | 备考思路,刷题要点,答疑 【新解法】 华为OD机试 - 找出同班小朋友 | 备考思路,刷题要点…...

PowerShell Install Office 2021 Pro Plus Viso Professional

前言 微软Office在很长一段时间内都是最常用和最受欢迎的软件。从小型创业公司到大公司,它的使用比例相当。它可以很容易地从微软的官方网站下载。但是,微软只提供安装程序,而不提供完整的软件供下载。这些安装文件通常比较小。下载并运行后,安装的文件将从后端服务器安装M…...

KubeSphere实战

文章目录一、KubeSphere平台安装1、Kubernetes上安装KubeSphere1.1 安装docker1.2 安装Kubernetes1.3 前置环境之nfs存储1.4 前置环境之metrics-server1.5 安装KubeSphere2、Linux单节点部署KubeSphere3、Linux多节点部署KubeSphere(推荐)二、KubeSphere实战1、多租户实战2、中…...

Linux 简介

Linux 内核最初只是由芬兰人林纳斯托瓦兹&#xff08;Linus Torvalds&#xff09;在赫尔辛基大学上学时出于个人爱好而编写的。 Linux 是一套免费使用和自由传播的类 Unix 操作系统&#xff0c;是一个基于 POSIX 和 UNIX 的多用户、多任务、支持多线程和多 CPU 的操作系统。 …...

java面试题-泛型异常反射

泛型1.什么是泛型&#xff1f;Java是一种强类型语言&#xff0c;数据类型在编译时必须确定。如果我们想要在代码中使用不同类型的数据&#xff0c;那么就需要为每种类型分别写出相应的代码。这样会导致代码冗长、重复&#xff0c;也不便于维护。为了解决这个问题&#xff0c;Ja…...

详细解读ChatGPT:如何调用ChatGPT的API接口到官方例子的说明以及GitHub上的源码应用和csdn集成的ChatGPT

文章目录1. 解读ChatGPT1.1 词语解释1.2 功能解读2. GitHub上ChatGPT的应用源码3. 调用ChatGPT的API4. 官方例子说明5. 集成ChatGPT自ChatGPT出来到如今&#xff0c;始终走在火热的道路上&#xff0c;如今日活用户破亿&#xff0c;他为何有如此大的魅力&#xff0c;深受广大用户…...

九龙证券|最新评级情况出炉,机构扎堆这一板块!聚氨酯龙头获得最多关注

本周算计254家上市公司获组织“买入型”评级。 电子板块评级组织扎堆 证券时报数据宝计算&#xff0c;2月13日至17日&#xff0c;A股市场53家组织算计进行347次评级&#xff0c;254家上市公司获“买入型”评级&#xff08;包含买入、增持、强烈推荐、推荐&#xff09;。 从申…...

propulsion wordpress/seo网站排名优化软件

Platform: Rockchip OS: Android 6.0 Kernel: 3.10.92 借用网友的一张图&#xff0c;刚开始看code的时候&#xff0c;存在了误区&#xff0c;以为系统分配了n个buffer_size的buffer,后来才发现图里这么多buffer_size在code中其实都只是模拟一个循环buffer,读写指针的数值一直增…...

网站建设和优化内容最重要性/驻马店百度seo

背景 首先&#xff0c;最近鄙人想在后台管理系统中添加一个&#xff1b; 可以跟其他管理员交流的即时通讯的小窗口&#xff1b; 同时也是一种学习积累&#xff1b; 在资源比较中我认为 GatewayWorker 是很合适的 于是&#xff0c;在此进行一番使用技巧的整理&#xff0c;以方便…...

国内网站开发不用wordpress/app怎么推广运营

web44 preg_match函数 多了对flag的过滤&#xff0c;flag可以用通配符绕过过滤 system函数还是一如既往的将传入参数的后面一个写入黑洞&#xff0c;不知道如何操作的小伙伴可以查看作者这两篇WP&#xff0c;都讲述了WP的具体用法 传送门1 传送门2 构造payload查看当前目录下…...

企业网站的建立不能缺少哪些细节/google官网入口下载

题目&#xff1a;原题链接&#xff08;困难&#xff09; 标签&#xff1a;动态规划、排序 解法时间复杂度空间复杂度执行用时Ans 1 (Python)O(N2)O(N^2)O(N2)O(N)O(N)O(N)88ms (53.44%)Ans 2 (Python)Ans 3 (Python) 解法一&#xff1a; class Solution:def maxHeight(self,…...

做网站的英文编辑/宁波seo关键词优化教程

文章参考 英文强制换行css 使用css强制英文单词断行代码css强制换行 案例一&#xff1a;div 控件内容全部英文没有间断 在工作中&#xff0c;给表单的某个字段添加描述信息&#xff0c;于是&#xff0c;测试就输入了’dddddd…(500个)’&#xff0c;查看详情的时候&#xff…...

河南住房与城乡建设厅网站/深圳优化公司

SSH之所以能够保证安全&#xff0c;原因在于它采用了公钥加密。 整个ssh密码登录过程是这样的&#xff1a; 1&#xff09;客户机向服务器发登录请求&#xff1a;ssh user远程服务器 后面远程服务器简称服务器 2&#xff09;服务器收到客户机的登录请求&#xff0c;把自己的公…...