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) 开平方运算 返回浮点数
相关推荐
飞Link8 小时前
什么是 AirSim?一文读懂无人机仿真平台
python·算法·无人机
学逆向的8 小时前
C 堆区内存管理
c语言·开发语言·网络安全
huoyueyi8 小时前
《融天AI-APP从0到1开发实录》
开发语言·lua
曲径海盗8 小时前
【Python 学习第 38 天】for 循环
python·学习笔记·编程入门
在世修行9 小时前
智学文枢:变式题生成引擎
python·ai·pyside·题目生成
OpenAnolis小助手10 小时前
PHP 两个严重漏洞曝光,龙蜥社区 24 小时完成 3 版本修复
开发语言·操作系统·php·龙蜥社区
On The Road :11 小时前
Java 多线程详解:从入门到线程安全
java·python·安全
阿尼卡~11 小时前
VS Code 配置 C 语言开发环境(Windows 10/11):从 GCC 安装到运行、断点调试,一篇搞定
c语言·开发语言·windows
岁月宁静11 小时前
如何设计支持 Skills 的 Agent?一套可扩展的四层架构
python·agent
岁月宁静11 小时前
CrewAI 快速上手:10 分钟搭建你的第一个 Agent 团队
python·agent