蓝桥杯Python算法竞赛常用的函数库

news2024/9/20 10:57:51
  • 博客主页:音符犹如代码
  • 系列专栏:Python
  • 关注博主,后期持续更新系列文章
  • 如果有错误感谢请大家批评指出,及时修改
  • 感谢大家点赞👍收藏⭐评论✍

目录

math

collectcions

heapq

functool

itertools

常用的库函数


math

math库

常用函数

collectcions

Counter:计数器

用于计数,他可以统计列表中每个元素出现的次数

常用函数

most_common(x):返回出现频率最高的 x 个元素及其出现次数,以元组列表的形式返回

elements():返回一个迭代器,每个元素重复对应次数

clear():清空

字典中使用

数学运算

deque:双端队列

与list功能类似,但是插入和删除操作比list效率快

defaultdict:有默认值的字典

在字典中获益key有两种方式,第一种是get,第二种通过[]获取

使用dict时,当访问一个不存在的key,就会抛出KeyError

如果希望这个key不存在时,会使用提供的默认工厂函数创建一个默认值

OrderredDict:有序字典

  • 与字典基本相同,他会记住元素插入的顺序
  • popitem()函数:
  1. 3.7版本以下的字典随机删除一个键值对然后返回
  2. 3.7版本及以上删除最后一个元素后返回
  3. OrderredDict:可以指定参数last,last默认值为True,可删除最后一个否则删除第一个

heapq

  • 堆:完全二叉树,通常分为最大堆和最小堆,heapq(默认为最小堆)
  • 每个父亲节点的值都小于或等于其左右子节点的值,这就符合了最小堆的特性

  • 首先使用list表示一个堆

1.将无序list转化为最小堆:

heapq.heapify(a)

2.在最小堆a中添加元素x:

heapq.heappush(a,x)

3,弹出并返回最小元素:

heapq.heappop(a)

4.弹出并返回最小元素,同时添加元素x:

heapq.heapreplace(a,x)

functools

  • 它提供了一些用于处理函数和可调用对象的工具函数,主要用于高阶函数的操作,即作用于函数或返回其他函数的函数
  • 我们这里只讲解偏函数:partial
  • partial:"冻结" 用于部分应用一个函数的参数,创建一个新的函数,新函数可以在原函数的基础上预先设置一部分参数,从而减少需要传递的参数数量

functools.partial(func,*args,**keywords)

  • func:需要被扩展的函数,返回的是一个类func形式的函数
  • *args:需要被固定位置的参数
  • **kwargs:需要被固定关键字的参数

itertools

迭代器的模块

  • 无限迭代器
  • 有限迭代器
  • 组合和排列迭代器

无限迭代器

  • 生成长度为无限的迭代器
  • count():产生无限递增的整数序列
  • cycle():无限循环地迭代给定的可迭代对象
  • repeat(object[,times]):创建一个迭代器,如果没有指定times则无限循环遍历objec,否则遍历指定次数

有限迭代器

  • accumulate:创建一个迭代器,返回累计汇总的值或其他双目运算函数的累计结果的值
  • accumulate([1,2,3,4,5]) --> 1 3 6 10 15
  • accumulate([1,2,3,4,5],max)  --> 1 2 3 4 5
  • accumulate([1,2,3,4,5],operator.mul)  --> 1 2 6 24 120
  • chain():合并多个迭代器
  • chain('ABC','DEF') --> A B C D E F

组合和排列迭代器

  • product(*iterables.repeat=1):可迭代对象的笛卡尔积

        1.*iterables:表示可迭代对象

        2.repeat:表示这些可迭代序列重复的次数

product([1,2,3],[4,5,6])
product('qw',repeat=2)
product('qw','er')
  • permutations(interable,r=None):由iterable元素生成长度为r的排列,如果r未指定为Noe,r默认设置为长度为iterable的长度
permutations('ABCD',2)
permutations([1,2,3,4])

常用的库函数

内置函数:python中自带的函数,不需要导入模块即可拿来使用的函数

1.操作数学方面的函数:

abs:绝对值complex:构建虚数
round:四舍五入divmod:返回商和余数
sum:求和eval:执行字符串表达式,返回表达式的值
max:最大值hex:转化为16进制
min:最小值oct:转化为8进制
pow:幂次bin:转化为2进制

2.操作序列和集合方面的函数

len:求长度sorted:排序zip:打包成元组
enumerate:枚举range:生成数字序列reversed:翻转

3.操作类型转化和判断的函数

int:整型dict:字典
folat:浮点型tuple:元组
bool:布尔type:对象类型
str:字符串id:对象唯一标识
list:列表chr:整型转化为字符
set:集合ord:字符转化为整型

4.其他常用的函数:

help:查看函数或模块用法的说明input:输入
all:判断可迭代对象是否都为Trueprint:输出
any:判断可迭代对象是否有一个为Trueiter:生成迭代器
dir:获取当前范围内的属性列表next:迭代器下一个
hasattr:判断对象是否存在属性map:序列做映射
getattr:对象的属性值

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【学习笔记】Elasticsearch学习汇总(包含SpringData、Spark、Flink操作)

文章目录 前言数据类型种类ES解决什么问题ELK StackES是什么数据格式正排(正向)索引倒排索引创建索引索引查询索引删除创建文档(添加数据)自定义ID 简单查询类似于主键查询查询所有数据 修改数据全量修改局部修改 删除数据条件查询请求路径(不推荐)请求体全查询分页查询指定查询…

为什么基于 GPT-LLM 的大模型会认为 9.11 大于 9.9?

本心、输入输出、结果 文章目录 为什么基于 GPT-LLM 的大模型会认为 9.11 大于 9.9?前言GPT 大模型认为 9.9 和 9.11 谁大通义千问文心一言ChatGPT 4o为什么基于 GPT-LLM 的大模型会认为 9.11 大于 9.9?为什么基于 GPT-LLM 的大模型会认为 9.11 大于 9.9? 编辑 | 简简单单 O…

2024.7.16(使用光盘创建本地仓库、引入网络镜像仓库、创建自建仓库)

了解yum源安装软件包 了解常用的网络yum源 掌握本地和网络yum源配置 能够使用yum工具安装软件包 yum安装优点: rpm安装 (下载软件、单独安装、需要解决依赖关系) rpm -ivh xxx 手动添加依赖软件包 源码安装(configure make…

vue3【详解】跨组件通信 -- 依赖注入 provide inject

用于解决跨组件&#xff08;父组件与所有后代&#xff09;数据通信 提供数据 provide 传出数据的组件 &#xff08;通常为父辈组件&#xff09;提供数据 <script setup> import { provide } from vueprovide(/* 注入名 */ message, /* 值 */ hello!) </script>pro…

vivado FFT IP Core

文章目录 前言FFT IP 接口介绍接口简介tdata 格式说明 其他细节关于计算精度及缩放系数计算溢出架构选择数据顺序实时/非实时模式数据输入输出时序关于配置信息的应用时间节点 FFT IP 例化介绍控制代码实现 & 测试速度测试参考文献 前言 由于计算资源受限&#xff0c;准备将…

【Matlab】RBF径向基神经网络回归预测算法(附代码)

资源下载&#xff1a; 资源合集&#xff1a; 目录 一&#xff0c;概述 RBF 神经网络&#xff08;Radial Basis Function Neural Network&#xff09;是一种基于径向基函数的前向型神经网络。它的特点是具有快速的训练速度和良好的泛化性能。 RBF 神经网络的基本结构包括输入层…

探索 Electron:如何利用Electron和Vite打造高效桌面应用

Electron是一个开源的桌面应用程序开发框架&#xff0c;它允许开发者使用Web技术&#xff08;如 HTML、CSS 和 JavaScript&#xff09;构建跨平台的桌面应用程序&#xff0c;它的出现极大地简化了桌面应用程序的开发流程&#xff0c;让更多的开发者能够利用已有的 Web 开发技能…

三、建造者模式

文章目录 1 基本介绍2 案例2.1 Car 类2.2 CarBuilder 抽象类2.3 EconomyCarBuilder 类2.4 LuxuryCarBuilder 类2.5 CarDirector 类2.6 测试程序2.7 测试结果2.8 总结 3 各角色之间的关系3.1 角色3.1.1 Product ( 产品 )3.1.2 Builder ( 抽象建造者 )3.1.3 ConcreteBuilder ( 具…

电阻有哪些参数呢

电阻是电路中最常见的元件之一&#xff0c;它在控制电流、分压和保护电路等方面发挥着重要作用。了解电阻的主要参数对于选择和使用电阻至关重要。本文将详细介绍电阻的主要参数&#xff0c;包括电阻值、功率额定值、温度系数、容差、噪声、频率特性、体积和封装等。 1. 电阻值…

长模式下的分页

前提 如果开启了长模式&#xff0c;则必须同时开启分页模式&#xff0c;因为长模式弱化了分段模型而分段模型也确实有很多不足&#xff0c;不适应现在操作系统和应用软件的发展长模式也扩展了 CPU 的位宽&#xff0c;使得 CPU 能使用 64 位的超大内存地址空间所以&#xff0c;…

当一个程序员的博客突然变少

shigen坚持更新文章的博客写手&#xff0c;擅长Java、python、vue、shell等编程语言和各种应用程序、脚本的开发。记录成长&#xff0c;分享认知&#xff0c;留住感动。 个人IP&#xff1a;shigen hello&#xff0c;伙伴们好久不见。马上到了八月&#xff0c;也是我在个人公众号…

JMeter介绍、安装配置以及快速入门

文章目录 1. JMeter简介2. JMeter安装配置3. JMeter快速入门 1. JMeter简介 Apache JMeter是一款开源的压力测试工具&#xff0c;主要用于测试静态和动态资源&#xff08;如静态文件、服务器、数据库、FTP服务器等&#xff09;的性能。它最初是为测试Web应用而设计的&#xff…

ETAS StackM配置及使用-stack监控

文章目录 前言Stack基本介绍StackM配置StackMTargetStackMGeneral Linker配置EcuM配置RTE配置集成与测试总结 前言 嵌入式C语言执行的软件中&#xff0c;stack溢出会导致程序执行异常&#xff0c;严重可能导致直接进硬件异常中断(hardfault)。软件执行过程中的stack监控是非常…

【JAVA多线程】Future,专为异步编程而生

目录 1.Future 2.CompletableFuture 2.1.为什么会有CompletableFuture&#xff1f; 2.2.使用 2.2.1.提交任务获取结果 2.2.2.回调函数 2.2.3.CompletableFuture嵌套问题 1.Future Java中的Future接口代表一个异步计算。其提供了一组规范用来对异步计算任务进行管理控制…

java项目(knife4j使用,静态资源未放在static资源包下,公共字段自动填充,Spring Cache与Spring Task)

Knife4j&#xff08;生成接口文档&#xff09; 使用swagger你只需要按照它的规范去定义接口及接口相关的信息&#xff0c;就可以做到生成接口文档&#xff0c;以及在线接口调试页面。官网:https://swagger.io/ Knife4j是为Java MVC框架集成Swagger生成Api文档的增强解决方案。…

uni-app 影视类小程序开发从零到一 | 开源项目推荐

引言 在数字娱乐时代&#xff0c;对于电影爱好者而言&#xff0c;随时随地享受精彩影片成为一种日常需求。分享一款基于 uni-app 开发的影视类小程序。它不仅提供了丰富的影视资源推荐&#xff0c;还融入了个性化知乎日报等内容&#xff0c;是不错的素材&#xff0c;同时对电影…

Springboot同时支持http和https访问

springboot默认是http的 一、支持https访问 需要生成证书&#xff0c;并配置到项目中。 1、证书 如果公司提供&#xff0c;则直接使用公司提供的证书&#xff1b; 如果公司没有提供&#xff0c;也可自己使用Java自带的命令keytool来生成&#xff1a; &#xff08;1&#x…

JavaWeb笔记_Cookie

一.会话技术概述 在日常生活中,A和B之间在打电话过程中一连串的你问我答就是一个会话 在BS模型中,会话可以理解为通过浏览器访问服务端的资源,点击超链接可以进行资源的跳转,直到浏览器关闭过程叫做会话 我们使用会话技术可以解决的是整个会话过程中(通过浏览器浏览服务…

【Linux】一文向您详细介绍 Vim编辑器 显示行号的方法

【Linux】一文向您详细介绍 Vim编辑器 显示行号的方法 下滑即可查看博客内容 &#x1f308; 欢迎莅临我的个人主页 &#x1f448;这里是我静心耕耘深度学习领域、真诚分享知识与智慧的小天地&#xff01;&#x1f387; &#x1f393; 博主简介&#xff1a;985高校的普通本…

【Matlab】PLS偏最小二乘法回归预测算法(附代码)

资源下载&#xff1a; 资源合集&#xff1a; 目录 一&#xff0c;概述 偏最小二乘法是一种新型的多元统计数据分析方法&#xff0c;于1983年由S.Wold和C.Albano等人首次提出。偏最小二乘法实现了&#xff0c;在一个算法下&#xff0c;可以同时实现回归建模&#xff08;多元线…