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

  • 博客主页:音符犹如代码
  • 系列专栏: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.mzph.cn/web/47137.shtml

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

相关文章

web服务器1

( 1 )仅提供用户浏览的单向静态网页 单纯是由服务器单向提供数据给客户端, Server 不需要与 client 端有互动,所以你可以到该网站上去浏 览,但是无法进行数据的上传。 ( 2 )提供用户互动接口的…

深入理解Linux网络(三):TCP对象创建

深入理解Linux网络(三):TCP对象创建 TCP对象创建inet_createsock_init_data TCP对象创建 常见的三句TCP编程: int main() {int sk socket(AF_INET, SOCK_STREAM, 0);connect(sk, ...)recv(sk, ...) }简单的两三⾏代码&#xff…

十年前的老电脑能装win10吗_十年前的老电脑用U盘安装win10教程

十年前的老电脑能装win10吗?十年前的老电脑只要满足win10最低要求的配置都可以安装win10。安装win10方法很多,有一键重装方法、U盘安装、硬盘安装等方式,但最靠谱的方式还是U盘安装。十年前的老电脑用U盘安装win10首先要将u盘制作成u盘启动盘…

react自定义校验报错问题修复 ProFormText

1、以下是tsx组件 自定义校验告警导致表单无法提交问题修复 修改如下:

体态识别开发记录

1.多标签输出分类算法 https://aiuai.cn/aifarm1372.html 2.体态识别算法 体态对比 体态判断 2.1 3D建模的方案 stable diffusion 插件地址: ControlNet https://github.com/Mikubill/sd-webui-controlnet 3D Openpose https://github.com/nonnonstop/sd…

VsCode SSH远程连接服务器【内网穿透公网连接】

文章目录 1.前言2.VS code的安装和设置2.1 VS code的下载安装2.2 OpenSSH的启用2.3 为VS code配置ssh2.4 局域网内测试VS code的ssh连接2.5 Cpolar下载安装 3.Cpolar端口设置3.1 Cpolar云端设置3.2 Cpolar本地设置 4.公网访问测试5.结语 1.前言 记得笔者小时候看电视&#xff…

仿源码大师主界面UI的iAPP源文件

仿源码大师首页主界面的布局 首页,分类,需求,我的 就只有这几个界面内容而已 资源静态 没有任何动画和功能 纯UI布局 纯UI布局 他的最新版已经不是这个UI布局 放心使用 以学习参考为目的,如有不妥望告知 原创,纯…

【Java数据结构】线性表之栈和队列

栈(Stack) 简单描述 栈:一种特殊的线性表,其只允许在固定的一端进行插入和删除元素操作。进行数据插入和删除操作的一端称为栈顶,另一端称为栈底。栈中的数据元素遵守后进先出LIFO(Last In First Out&…

初识网络基础知识

关于网络的一些核心概念 局域网 局域网(Local Area Network,简称LAN)是一种计算机网络,覆盖的范围通常是相对较小的地理区域,比如一个办公室、一栋大楼或一个校园。 局域网的组成通常包括以下部分: 网络…

数据结构-C语言-排序(3)

代码位置:test-c-2024: 对C语言习题代码的练习 (gitee.com) 一、前言: 1.1-排序定义: 排序就是将一组杂乱无章的数据按照一定的规律(升序或降序)组织起来。(注:我们这里的排序采用的都为升序) 1.2-排序分…

录取查询老师在哪里制作?

随着考试的落幕,家长们焦急等待的心情终于可以稍微缓解,因为录取结果即将揭晓。然而,对于老师来说,这仅仅是另一项繁重工作的开始。他们需要将每一份录取通知单逐一发送给学生家长,这个过程不仅耗时而且容易出错。面对…

Blender中的重拓扑修改器如何使用?

许多人还不了解Blender中的重拓扑编辑器及其使用方法。Blender中的重拓扑修改器提供了一系列工具和选项,以简化创建优化网格的过程,无论是出于何种目的,都能为3D艺术家和建模者节省大量时间和精力。那么,在Blender中重拓扑的定义是…

《数据结构:C语言实现双链表》

文章目录 一、链表的分类二、双向链表1、概念与结构 三、双向链表实现1、双向链表要实现的功能2、哨兵位初始化3、双链表头插数据4、判断链表是否为空5、打印链表数据6、尾插数据7、头删数据8、尾删数据9、寻找数据所在结点10、在任意结点之后插入数据11、删除任意结点12、销毁…

FastGPT 代码调试配置

目录 一、添加 launch.json 文件 二、调试 本文简单介绍如何通过 vscode 对 FastGPT 进行调试。 这里假设已经安装 vsocde 和 FastGPT本地部署。 一、添加 launch.json 文件 vscode 打开 FastGPT 项目,点击 调试 -> 显示所有自动调试配置 -> 添加配置 -&…

IDEA创建Java工程、Maven安装与建立工程、Web工程、Tomcat配置

《IDEA破解、配置、使用技巧与实战教程》系列文章目录 第一章 IDEA破解与HelloWorld的实战编写 第二章 IDEA的详细设置 第三章 IDEA的工程与模块管理 第四章 IDEA的常见代码模板的使用 第五章 IDEA中常用的快捷键 第六章 IDEA的断点调试(Debug) 第七章 …

响应式编程(Reactive Programming)是什么?

响应式编程的概念 Reactive Programming(反应式编程或响应式编程)是一种面向数据流和变化传播的编程范式,它允许程序组件以声明式的方式响应数据的变化。 响应式编程强调以数据流作为核心,利用观察者模式等机制自动处理数据的变化和传播。 响应式编程的核心思想 以异步数…

【Nacos】Nacos服务注册与发现 心跳检测机制源码解析

在前两篇文章,介绍了springboot的自动配置原理,而nacos的服务注册就依赖自动配置原理。 Nacos Nacos核心功能点 服务注册 :Nacos Client会通过发送REST请求的方式向Nacos Server注册自己的服务,提供自身的元数据,比如ip地址、端…

JVM监控及诊断工具-命令行篇--jcmd命令介绍

JVM监控及诊断工具-命令行篇5-jcmd:多功能命令行 一 基本情况二 基本语法jcmd -ljcmd pid helpjcmd pid 具体命令 一 基本情况 在JDK 1.7以后,新增了一个命令行工具jcmd。它是一个多功能的工具,可以用来实现前面除了jstat之外所有命令的功能…

pyspark使用 graphframes创建和查询图的方法

1、安装graphframes的步骤 1.1 查看 spark 和 scala版本 在终端输入: spark-shell --version 查看spark 和scala版本 1.2 在maven库中下载对应版本的graphframes https://mvnrepository.com/artifact/graphframes/graphframes 我这里需要的是spark 2.4 scala 2.…

QDockWidget

详细描述 QDockWidget 类提供了一个小部件,它可以停靠在QMainWindow内部,也可以作为桌面上的顶级窗口浮动。 QDockWidget 提供了停靠部件的概念,也称为工具调色板或实用窗口。停靠窗口是放置在 中央部件 周围的停靠部件区域中的辅助窗口&am…