Python 常用函数总结

作者:GrowthDiary007日期:2026/8/12

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

1from collections import deque
2print(dir(deque))
3

(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()转换
collectionsCounter统计元素出现频次.most_common(k) 获取频次最高k个元素
defaultdict(int)字典默认值为0省去if key not in dict判断
defaultdict(list)字典默认值为空列表适合一对多映射关系
deque()双端队列,两端操作O(1)禁止使用list.pop(0),时间复杂度O(n)
heapqheappush(heap, val)元素入堆Python仅提供最小堆O(logn)
heappop(heap)弹出堆顶最小值实现最大堆:存入负数O(logn)
heapify(arr)原地数组堆化 O(n)效率高于循环heappush
nsmallest(k, arr) / nlargest(k, arr)获取前k小/前k大元素海量数据不推荐,建议手写堆
bisectbisect_left(arr, x)查找第一个 ≥ x 的索引下标二分工具,不能用于值域二分答案
bisect_right(arr, x)查找第一个 > x 的索引常用于计算重复元素右边界
insort(arr, x)有序数组插入元素插入时间复杂度O(n)
randomrandom.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)原地打乱序列修改原数组,不返回新列表
functoolsreduce(func, iter)迭代累积运算逻辑复杂时代码可读性较差
@lru_cache(maxsize=None)递归函数记忆化缓存参数只能是int/tuple/str,不能传list
itertoolspermutations(arr, k)排列(有序选取)大数据容易超时,复杂场景手写回溯
combinations(arr, k)组合(无序选取)元素不重复选取
product(a,b)笛卡尔积等价多层for循环
accumulate(arr)生成前缀和迭代器可转为list直接使用
mathmath.inf / -math.inf float('inf') float('-inf')正无穷、负无穷用来初始化最大/最小值
ceil(x) / floor(x)向上取整、向下取整区分整数除法与浮点取整
gcd(a,b)求最大公约数仅支持非负数
sqrt(x)开平方运算返回浮点数

《Python 常用函数总结》 是转载文章,点击查看原文。


相关推荐


一个队列,怎么让滑动窗口从 O(nk) 变 O(n)?单调队列彻底搞懂
烬羽2026/8/3

滑动窗口最大值的 O(n) 解法:为什么"比你年轻还比你强"就该被踢出? // 给你一个数组和一个窗口大小 k,窗口从左滑到右,每滑一步输出窗口内最大值 // 输入: nums = [1, 3, -1, -3, 5, 3, 6, 7], k = 3 // 期望: [3, 3, 5, 5, 6, 7] // 如果你第一次见到这题,大概率会这样写: var maxSlidingWindow = function(nums, k) { const result = []; for


Agent & AI 名词大扫盲
我是一筐橙子2026/7/26

Agent & AI 名词大扫盲:一篇文章搞懂 10 个核心概念 你是不是经常在 AI 圈听到一堆名词——大模型、Agent、RAG、MCP、Function Call……每个都似懂非懂?这篇文章用最通俗的语言,一口气帮你扫清 10 个高频 AI 术语。 1. 什么是大模型? 一句话:大模型就是「读过全网、能对答如流」的超级大脑。 大模型(Large Language Model,LLM)是指参数规模巨大的神经网络模型,通过在海量文本数据上训练而来。它学到的不是「死记硬背」,而是语言的模式


MVI模式的完整历史、误解和现代Android范式
稀有猿诉2026/7/18

本文译自「Yes, That’s MVI: The Pattern’s Full History, Misconceptions, and Modern Android Form」,原文链接proandroiddev.com/yes-that-is…,由Eury Pérez Beltré发布于2025年5月29日。 每项传统背后都有其原因——而原因背后,又蕴藏着一个故事。 – 佚名 欢迎阅读本文!我的目标是帮助你真正理解 MVI 模式的本质,解释我为何对我的观点充满信心,以及该模式的起源


别再手动拼接路径了!Node.js path 模块的 9 个核心 API 详解
先吃饱再说2026/7/10

别再手动拼接路径了!Node.js path 模块的 9 个核心 API 详解 摘要:路径处理是每个 Node.js 项目都绕不开的活。本文从 path.join 和 path.resolve 的区别入手,逐一拆解 path 模块的 9 个核心 API,并结合代码演示跨平台路径处理的正确姿势。读完你会发现——原来我之前一直在用错误的方式拼接路径。 📑 目录 为什么需要 path 模块? path.join 与 path.resolve:最容易被搞混的两个 API path.dirname


用 Vibe Coding 搭了一个完整小程序「一定能成」
有趣的老凌2026/7/2

前言 这不是一篇技术教程,而是一个产品创作者的完整记录——从脑子里一个模糊的想法,到上线一个包含用户端、API、后台管理、AI 集成的真实产品,全程用 Codex 协作完成。 一、引子:一个想法的诞生 我一直有一个困扰。 市面上缺一个让我能把目标「真正执行下去」的工具。 Notion 太自由,需要自己搭建模板,搭完模板就没动力执行了。待办清单太简单,只能记「今天要做什么」,解决不了「今天为什么要做这个」和「明天该做什么」。OKR 太企业级,适合团队管理,不适合个人日常。 我想要的东西其实很简单


图解 MongoDB 08|ESR 原则:复合索引的字段顺序怎么定
十三Tech2026/6/23

复合索引是 MongoDB 性能优化里最常用、也最容易用错的工具。很多人建复合索引的方式是「查询用到哪几个字段,就按想到的顺序建一个」,结果发现索引只用了第一个字段,查询照样慢。问题不在「有没有建索引」,而在字段顺序。 复合索引的字段顺序,决定了它能服务哪些查询、能用上几个字段。同样的三个字段 {a, b, c},排成 {a, b, c} 和 {c, b, a} 是两棵完全不同的 B-tree,能加速的查询也完全不同。这一篇讲清楚复合索引字段排序的核心原则——ESR(Equality, Sort


古法编程秘籍(七):互联网到底是什么?把两台电脑怎么说话搞懂就够了
JustHappy2026/6/15

Hi!这里是 JustHappy 这是专为编程初学者准备的专栏。这次我们来“上网”,但是互联网不是网页,也不只是 HTTP,它本质上是不同机器上的程序按规则交换数据。看懂客户端、服务器、协议、操作系统、网卡这条链,再分清 HTTP 的“一问一答”和 WebSocket 的“持续通信”,你的网络世界观才算真正搭起来。 上一篇我们讲到这里: 代码会执行、会发起 IO、硬件会工作、中断会通知CPU、操作系统会处理。 最后程序收到事件,再继续执行。 写到这里,很多人会自然冒出一个新问题: 如果 IO


Java MyBatis-Plus 实战指南:用 BaseMapper、Wrapper 和分页写好数据层
唐青枫2026/6/8

简介 MyBatis-Plus 是一个基于 MyBatis 的增强工具。 它经常被简称为 MP。 它的核心定位是: 只做增强,不改变 MyBatis 原有能力。 普通 MyBatis 项目里,哪怕只是做一张表的增删改查,也经常要写: Mapper 接口 Mapper XML insert SQL delete SQL update SQL select SQL 分页 SQL 条件 SQL MyBatis-Plus 把这些单表常规操作封装成了通用方法。 最常见的写法是: public inte


基因泰克:检测级虚拟细胞基准!大语言模型+智能体
Omics Pro2026/6/1

摘要 机器学习与大规模生物数据的进展重新激发了构建虚拟细胞(预测细胞行为的计算模型,可加速生物学发现)的研究前景。该愿景的核心应用是体外表型筛选,即模型预测细胞扰动在未知生物场景下的效应,该任务融合异质文本输入与多样表型输出,高度适配大语言模型与智能体系统。但目前该任务缺乏标准化基准,现有研究仅聚焦分子层面读数,与真实药物研发流程中的表型终点脱节。本研究推出基于1,920个公开CRISPR筛选构建的表型筛选预测基准AssayBench,覆盖5大类细胞表型;将筛选预测任务定义为单筛选基因排序任务


Spring MVC 的核心知识点梳理
huohuopro2026/5/11

MVC 是什么 MVC 不是 Spring 发明的,而是一种设计模式,目的是“解耦”。 M(Model,模型):数据 + 业务逻辑。比如 Teacher 类,TeacherService。V(View,视图):展示数据的界面。比如 JSP、Thymeleaf 模板,或者是现代返回 JSON 的前端页面。C(Controller,控制器):接收用户请求,调用 Model,最后选择 View 来展示。 流程:用户点击一个链接 → Controller 拿到请求 → 调 Service 拿到数据(Mo

首页编辑器站点地图

本站内容在 CC BY-SA 4.0 协议下发布

Copyright © 2026 聚合阅读