python 语法相关

36 阅读1分钟

标准函数

range(start,end,step)
range() 本质上是生成一个整数序列(步长也是整数),所以 startstopstep 都要求是整数。

list[start:end] python进行切片操作, start:起始索引(包含) end:结束索引(不包含!) 开区间 end - 1 才是最后一个包含的元素

变量类型

y = [x]中,一个数字外面套上[]就变成了list

kdtree

把空间递归地用超平面(二叉树节点)划分,每个节点存一个点。

  1. 先按 x 坐标排序,取中位数作为根节点,比如 (7,2)
  2. 左边点放左子树,右边点放右子树。
  3. 下一层按 y 坐标排序,再取中位数分割。
  4. 不断递归,直到所有点放到树里。
    这样得到一棵二叉树,每一层交替用 xy(二维情况)来划分。

代码风格

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;
如果第二个还相等,就继续比较第三个(如果有)。