【python】leetcode中常用函数(持续更新)
可以统计字符串中每个字符出现的次数,也可以统计数组中每个数字出现的次数遍历成员输出出现最多次数的一个成员如果不指定参数则列出所有更新成员会生成下标索引+内容1.3 defaultdict() 缺省字典是python提供了一种默认值字典的数据结构。它允许我们在定义字典时给所有不存在的key设置默认值,这样当取不存在的key时,就不会报错。(1)defaultdict(int):初始化为 0(2)de
文章目录
1.1 Counter() 计数器
Counter()可以统计字符串中每个字符出现的次数,也可以统计数组中每个数字出现的次数
print(Counter('aabbccc'))
遍历成员Counter().items()
for val,cnt in Counter('aabbccc').items():
print(val,cnt)
更新成员Counter().update()
1.2 enumerate() 索引数组
enumerate()会生成下标索引+内容
for i, element in enumerate(seq):
print i, element
1.3 defaultdict() 缺省字典
defaultdict()是python提供了一种默认值字典的数据结构。它允许我们在定义字典时给所有不存在的key设置默认值,这样当取不存在的key时,就不会报错。
(1)defaultdict(int):初始化为 0
(2)defaultdict(float):初始化为 0.0
(3)defaultdict(str):初始化为""
(4)defaultdict(list):初始化为[0]
1.4 deque() 队列
s1 = q.popleft()取出队列左侧值并删除q.append(s1)在队列右侧添加值
1.5 heapq 堆
默认最小堆,也就是第一个数永远是最小的
heapq.heapify(list)申明堆heapq.heappush(heap, item)增加元素heapq.heappop(heap)删除并返回堆中最小值heapq.heappushpop(heap, item)弹出最小值并增加元素
1.6 reduce()
reduce(lambda x,y:x+y ,a)将数组a的元素两两传入,并递归调用
1.7 map()
map(function,a)将数组a的元素传入并执行function函数
2.1 数组操作
array[::2]取所有偶数索引array[1::2]取所有奇数索引array[::-1]反转数组array.sort()数组从小到大排列array.sort(reverse=1)数组从大到小排列array.sort(key=lambda x: (-x[0], x[1]))将二维数组第一位降序排序,如果第一位相同,就按第二位升序排序,按照key的函数返回值进行从小到大排序max()求数组最大值min()求数组最小值sum()求数组和set()数组去重choice()返回数组、元组或字符串随机数
index = bisect(ls, x)有序列表二分法查找获取索引值
biserct_right寻找右侧第一个值得索引+1
返回索引+1biserct_left寻找左侧第一个值
如未查找到值,则返回合适的插入点索引,使得数组有序
参考文档
2.3 字符串操作
s1.split()将字符串按空格进行分割s1.split('\n')将字符串按换行进行分割f'{L}({M}){R}'字符串拼接{}eval()字符串表达式计算,返回计算结果s1.isdigit()判断字符串是否全是由数字组成s1.islower()判断字符串是否为小写字母
图搜索
1 方向表,即(x,y)的四周的方向。
2 状态表,用来判断该节点是否已经访问过了。
3 边界检测,在进行递归或者入队之前必须对边界进行检测,符合条件才能递归或者入队。
4 判断目标,如果出现目标则进行处理。
3.1 BFS 广度优先搜索
- 求无权图的最短路径
def bfs(graph, start):
# 创建一个set记录点是否已被遍历
visited = set()
q = Queue()
q.put(start)
while not q.empty():
u = q.get()
print(u)
for v in graph.get(u, []):
if v not in visited:
visited.add(v)
q.put(v)
graph = {1: [4, 2], 2: [3, 4], 3: [4], 4: [5]}
bfs(graph, 1)
3.2 DFS 深度优先搜索
- 寻找两点之间所有路径。
- 求关键路径。因为它能发现所有路径,第一次dfs求出最长的路径,再dfs一次把所有等于这个长度的路径输出来,可能会输出好几条最长路径。这样就不用求什么最早最晚时间和拓扑了。
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)