Python 常用函数总结

(1)如果不知道这个包有什么方法可以使用 dir() 打印出来

python 复制代码
from collections import deque
print(dir(deque))

(2)常用方法总结

分类 工具/函数 核心功能 重要注意事项
原生内置 dict() d.update(obj)、d.keys()、d.values()、d.items()
set() s.add(x)、s.update(iterable)/s.remove(x)
enumerate(iter, start=0) 同时返回下标与元素 for i, val in enumerate(nums)
any(iterable) 任一元素为True,返回True 支持生成器表达式,节省内存
all(iterable) 全部元素为True,返回True 支持生成器表达式
zip(*iterables) 多序列并行打包;zip(*matrix)实现矩阵转置 zip结果为迭代器,需要list()展开
sorted(iter, key, reverse) 返回新有序序列 list.sort()原地修改,无返回值
max(iter, key) / min(iter, key) 求最大/最小值,支持自定义比较规则 key可以使用lambda表达式
divmod(a, b) 一次性返回(商,余数) divmod(7,3) → (2,1)
reversed(seq) 生成反向迭代器 不改变原数组
map(func, iterable) 将函数依次作用于序列每个元素 返回迭代器,通常配合list()转换
collections Counter 统计元素出现频次 .most_common(k) 获取频次最高k个元素
defaultdict(int) 字典默认值为0 省去if key not in dict判断
defaultdict(list) 字典默认值为空列表 适合一对多映射关系
deque() 双端队列,两端操作O(1) 禁止使用list.pop(0),时间复杂度O(n)
heapq heappush(heap, val) 元素入堆 Python仅提供最小堆O(logn)
heappop(heap) 弹出堆顶最小值 实现最大堆:存入负数O(logn)
heapify(arr) 原地数组堆化 O(n) 效率高于循环heappush
nsmallest(k, arr) / nlargest(k, arr) 获取前k小/前k大元素 海量数据不推荐,建议手写堆
bisect bisect_left(arr, x) 查找第一个 ≥ x 的索引 下标二分工具,不能用于值域二分答案
bisect_right(arr, x) 查找第一个 > x 的索引 常用于计算重复元素右边界
insort(arr, x) 有序数组插入元素 插入时间复杂度O(n)
random random.random() 生成 [0.0, 1.0) 随机浮点数 算法随机采样、概率模拟
randint(a,b) 生成 a, b 闭区间随机整数 左右边界都可取
randrange(a,b) 生成 [a, b) 左闭右开整数 可指定步长 randrange(a,b,step)
choice(seq) 从序列随机选取一个元素 序列不能为空
sample(seq, k) 无放回随机选取k个元素 蓄水池抽样、随机采样
shuffle(seq) 原地打乱序列 修改原数组,不返回新列表
functools reduce(func, iter) 迭代累积运算 逻辑复杂时代码可读性较差
@lru_cache(maxsize=None) 递归函数记忆化缓存 参数只能是int/tuple/str,不能传list
itertools permutations(arr, k) 排列(有序选取) 大数据容易超时,复杂场景手写回溯
combinations(arr, k) 组合(无序选取) 元素不重复选取
product(a,b) 笛卡尔积 等价多层for循环
accumulate(arr) 生成前缀和迭代器 可转为list直接使用
math math.inf / -math.inf float('inf') float('-inf') 正无穷、负无穷 用来初始化最大/最小值
ceil(x) / floor(x) 向上取整、向下取整 区分整数除法与浮点取整
gcd(a,b) 求最大公约数 仅支持非负数
sqrt(x) 开平方运算 返回浮点数
相关推荐
热心网友俣先生1 小时前
2026年华数杯C 题 超详细解题思路
c语言·开发语言·人工智能
啄缘之间1 小时前
5.1 uvm‑component 的层级结构管理? new (name,parent) 参数
开发语言·笔记·学习·ic·uvm·sv
2601_957883841 小时前
2026年8月:外星人笔记本维修服务揭秘
python·电脑
eric-sjq1 小时前
仅0.6B参数如何锁住超长记忆?Xiaothink-T17-RWKV5-MLA 架构深度解析:RWKV-v5 × MLA 的“降维打击“
python·架构
旖旎夜光1 小时前
C++(类与对象)(下)
开发语言·c++·学习
张小凡vip2 小时前
Python爬虫实战:高效稳定的文件下载模块设计与实现
开发语言·爬虫·python
江屿风2 小时前
【科普】【差集&交集概念落地云相册】流食般投喂
开发语言·c++·笔记·算法·云相册
代龙涛2 小时前
WordPress header.php 与 footer.php 模板结构详解
开发语言·php·wordpress
黄贵根7 小时前
JavaScript实现教培行业意向登记系统
开发语言·javascript·ecmascript