Python 算法题必备基础操作(高频速查版)

张开发
2026/4/10 0:08:33 15 分钟阅读

分享文章

Python 算法题必备基础操作(高频速查版)
这是刷算法题、笔试、面试最常用的 Python 基础操作合集覆盖数组、字符串、链表、哈希、栈队列、排序、遍历、边界处理等核心场景直接背会就能写代码。一、输入输出笔试必用1. 标准输入# 单个整数nint(input())# 一行多个数字 → 转列表numslist(map(int,input().split()))# 多行输入n 行data[input().strip()for_inrange(n)]2. 输出print(a)print(a,b,c)# 空格分隔print( .join(map(str,nums)))# 列表转字符串输出二、数组 / 列表最常用1. 创建与初始化# 空列表arr[]# 固定长度初始值arr[0]*10# 二维数组正确写法dp[[0]*nfor_inrange(m)]2. 增删改查arr.append(x)# 末尾添加 O(1)arr.insert(i,x)# 下标 i 插入 O(n)arr.pop()# 删除末尾 O(1)arr.pop(i)# 删除下标 i O(n)delarr[i]# 删除下标 iarr.remove(x)# 删除第一个值为 x 的元素len(arr)# 长度arr[i]# 访问3. 切片高频arr[1:5]# [1,5) 下标arr[:3]# 前 3 个arr[-2:]# 最后 2 个arr[::-1]# 反转数组4. 排序arr.sort()# 原地升序arr.sort(reverseTrue)# 原地降序sorted(arr)# 新列表升序# 自定义排序 keyarr.sort(keylambdax:x[1])5. 查找# 线性查找ifxinarr:idxarr.index(x)# 二分查找有序数组importbisect bisect.bisect_left(arr,x)# 第一个 x 的下标三、字符串高频1. 基础操作sabc123len(s)s[i]# 访问s[1:3]# 切片s.split()# 分割-.join(list)# 列表拼接成字符串s.strip()# 去首尾空格/换行s.replace(a,b)s.lower()/s.upper()2. 判断s.isdigit()# 是否全数字s.isalpha()# 是否全字母s.startswith(a)s.endswith(b)3. 字符串 ↔ 列表# 转列表lstlist(s)# 列表转回字符串s.join(lst)四、哈希表字典1. 定义与操作d{}d[key]value d.get(key,default)# 安全获取keyind# 判断存在deld[key]d.keys()d.values()d.items()2. 统计频率超级常用fromcollectionsimportdefaultdict,Counter cntCounter(nums)# 直接统计元素出现次数dicdefaultdict(int)# 不存在默认 0五、栈 队列1. 栈用列表即可stack[]stack.append(x)# 入栈stack.pop()# 出栈stack[-1]# 栈顶2. 队列推荐 dequefromcollectionsimportdeque qdeque()q.append(x)# 队尾入队q.popleft()# 队首出队 O(1)q[0]# 队首六、循环与遍历1. 普通遍历# 遍历值forxinarr:# 遍历下标foriinrange(len(arr)):# 下标值同时遍历fori,valinenumerate(arr):2. 逆序遍历foriinrange(len(arr)-1,-1,-1):forxinreversed(arr):七、数学常用abs(x)# 绝对值max(arr)min(arr)sum(arr)pow(a,b)# a^b//整除%取余八、边界与判断必背# 空判断ifnotarr:ifnots:# 越界判断ifi0orilen(arr):# 奇偶x%20# 偶x%21# 奇九、双指针算法题核心# 左右指针回文、反转、两数之和l,r0,len(nums)-1whilelr:if...:l1else:r-1# 快慢指针链表、数组去重slow0forfastinrange(n):...十、递归 DFS 模板defdfs(参数):if终止条件:return# 处理逻辑dfs(下一层)十一、BFS 模板fromcollectionsimportdeque qdeque([start])whileq:curq.popleft()for邻居:q.append(邻居)十二、常用内置模块高频importmath# 数学importsys# 快读fromcollectionsimportCounter,defaultdict,dequeimportbisect# 二分importheapq# 堆优先队列总结数组/字符串切片、遍历、排序、反转是基础中的基础哈希表Counter和defaultdict统计频率必用栈/队列list做栈deque做队列popleft()快双指针解决数组、链表、字符串问题的万能方法输入输出笔试必须熟练掌握这些操作覆盖90% 算法题基础代码背熟就能快速写出正确代码框架。

更多文章