# 1.用于求前缀和
from itertools import accumulate
lis = [1, 2, 3, 1]
print(list(accumulate(lis)))
print("==============================")
# 2.普通队列
from collections import deque
q = deque()
q.append(1) # 队尾入队
q.append(2)
q.append(3)
q.appendleft(0) # 队首入队
print(len(q)) # 判断队列非空
print(q.popleft()) # 队首出队
print(q.pop()) # 队尾出队
print("===============================")
# 3.优先队列(本质上是小根堆)
from queue import PriorityQueue
q = PriorityQueue()
q.put(3) # 入队
q.put(1)
q.put(2)
print(q.empty()) # 判断队列非空
print(q.get()) # 出队(每次出队的为最值)
print("================================")
# 4.堆(默认小根堆, 将元素取负就可以建大根堆)
import heapq
a = [1, 2, 3, 4, 5]
heapq.heapify(a) # 将a建成小根堆
heapq.heappush(a, 8) # 入堆
print(heapq.heappop(a)) # 出堆(最小值出)
print(heapq.heappushpop(a, 0)) # 出堆的同时入堆
print("=================================")
# 5.数学模块
import math
print(math.ceil(math.log(10 ** 5, 2))) # ceil向上取整, log对2取对数
print(math.gcd(12, 4)) # 最大公因数
print("==================================")
# 6.日期模块
from datetime import datetime, timedelta
time = datetime(2024, 4, 6, 12, 0, 0)
print(time) # 2024-04-06 12:00:00
delta = timedelta(weeks=1, days=1, hours=1, minutes=1, seconds=1) # 时间间隔
print(time + delta) # 2024-04-14 13:01:01
# 7.sys模块
import sys
sys.setrecursionlimit(10000) # 设置递归深度
input = sys.stdin.readline # 简化输入
# 8.记忆化搜索模块
from functools import lru_cache
@lru_cache(maxsize = None)
def dfs():
pass
蓝桥杯备赛-比赛常用模块
最新推荐文章于 2024-07-18 19:36:20 发布