python刷题关键记录【常用api使用方法总结,常用函数使用方法】
将字符串类型的运算表达式转为列表:
import re
list = re.findall("\w+|\+|-|\(|\)", cal_expression)
cal_expression = re.findall("\w+|\+|-|\(|\)", cal_expression)
-
\w+
匹配 1个或多个字母、数字或下划线(等价于 [a-zA-Z0-9_])。
例如:“abc”, “123”, “x1” 等。 -
\+
- 匹配 加号
+
(+
在正则中是特殊字符,需要用\
转义)。
- 匹配 加号
-
-
- 匹配 减号
-
(-
在字符类外没有特殊含义,可以直接匹配)。
- 匹配 减号
-
\(
- 匹配 左括号
(
((
是正则特殊字符,需要用\
转义)。
- 匹配 左括号
-
\)
- 匹配 右括号
)
()
是正则特殊字符,需要用\
转义)。
- 匹配 右括号
堆以及堆列表
import heap, heapq
heappop(nums)
heappush(nums)
heapq.heappop(nums)
heapq.heappush(nums)
二分查找
在 Python 的 bisect
模块中,insort_left()
和 insort_right()
之所以使用 insort
而不是 insert
,主要是为了 强调它们的功能是“在有序列表中插入元素并保持有序”,而不仅仅是普通的插入操作。
import bisect
idx = bisect.bisect_left(nums, k) # 查找
bisect.insort_left(nums, k) # 插入
组合排列数量
import math
math.comb(m, n) # C_m^n
math.perm(m, n) # A_m^n
字符串十六进制转int十进制
body = "FFFFFFFF"
body = "0x0000FFFF" # 两种表示都行
int(body, 16)
字符串转ASCII,或者反向转换
chr(97) # ASCII -> 字符串
ord('a') # 字符串 -> ASCII