标准函数
range(start,end,step)
range() 本质上是生成一个整数序列(步长也是整数),所以 start、stop、step 都要求是整数。
list[start:end]
python进行切片操作,
start:起始索引(包含)
end:结束索引(不包含!) 开区间
end - 1 才是最后一个包含的元素
变量类型
y = [x]中,一个数字外面套上[]就变成了list
kdtree
把空间递归地用超平面(二叉树节点)划分,每个节点存一个点。
- 先按 x 坐标排序,取中位数作为根节点,比如
(7,2)。 - 左边点放左子树,右边点放右子树。
- 下一层按 y 坐标排序,再取中位数分割。
- 不断递归,直到所有点放到树里。
这样得到一棵二叉树,每一层交替用x、y(二维情况)来划分。
代码风格
def function_name(param1, param2):
"""一句话简要描述函数的作用。
更详细的描述(可选),比如解释算法思路、使用场景等。
Args:
param1 (int): 参数1的说明。
param2 (str): 参数2的说明。
Returns:
bool: 返回值的说明。
Raises:
ValueError: 抛出的异常情况说明。
"""
# 函数代码
数据结构
a=dict() 字典
dict的访问 a[键]=值
heapq 是 Python 内置的 堆队列算法库
存放进去的元素,会按照 大小顺序 来组织,而不是按先后顺序。
取出时(heappop),永远取出的是 堆里最小的那个元素。
存入堆的是一个二元元组,内部排序的规则:
先比较第一个元素 a;
如果第一个元素相等,再比较第二个元素 b;
如果第二个还相等,就继续比较第三个(如果有)。