蓝桥杯Python算法竞赛常用的函数库
目录
math
math库
常用函数
collectcions
Counter:计数器
用于计数,他可以统计列表中每个元素出现的次数
常用函数
most_common(x):返回出现频率最高的 x 个元素及其出现次数,以元组列表的形式返回
elements():返回一个迭代器,每个元素重复对应次数
clear():清空
字典中使用
数学运算
deque:双端队列
与list功能类似,但是插入和删除操作比list效率快
defaultdict:有默认值的字典
在字典中获益key有两种方式,第一种是get,第二种通过[]获取
使用dict时,当访问一个不存在的key,就会抛出KeyError
如果希望这个key不存在时,会使用提供的默认工厂函数创建一个默认值
OrderredDict:有序字典
- 与字典基本相同,他会记住元素插入的顺序
- popitem()函数:
- 3.7版本以下的字典随机删除一个键值对然后返回
- 3.7版本及以上删除最后一个元素后返回
- 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:判断可迭代对象是否都为True | print:输出 |
any:判断可迭代对象是否有一个为True | iter:生成迭代器 |
dir:获取当前范围内的属性列表 | next:迭代器下一个 |
hasattr:判断对象是否存在属性 | map:序列做映射 |
getattr:对象的属性值 |
原文地址:https://blog.csdn.net/Rangsh/article/details/140563417
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!