 Hello 算法 1.0.0b4 Python版二叉树 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106 7.2. 二叉树遍历 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112 7.3. 二叉树数组表示 . 2. 图基础操作 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159 9.3. 图的遍历 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165 9.4. 小结 . . . in range(n): count += 1 return count 遍历数组和遍历链表等操作的时间复杂度均为 ?(?) ,其中 ? 为数组或链表的长度。 � 如何确定输入数据大小 ? ? 数据大小 ? 需根据输入数据的类型来具体确定。例如,在上述示例中,我们直接将 ? 视为输 入数据大小;在下面遍历数组的示例中,数据大小 ? 为数组的长度。 # === File: time_complexity0 码力 | 329 页 | 27.34 MB | 1 年前3 Hello 算法 1.0.0b4 Python版二叉树 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106 7.2. 二叉树遍历 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112 7.3. 二叉树数组表示 . 2. 图基础操作 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159 9.3. 图的遍历 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165 9.4. 小结 . . . in range(n): count += 1 return count 遍历数组和遍历链表等操作的时间复杂度均为 ?(?) ,其中 ? 为数组或链表的长度。 � 如何确定输入数据大小 ? ? 数据大小 ? 需根据输入数据的类型来具体确定。例如,在上述示例中,我们直接将 ? 视为输 入数据大小;在下面遍历数组的示例中,数据大小 ? 为数组的长度。 # === File: time_complexity0 码力 | 329 页 | 27.34 MB | 1 年前3
 Hello 算法 1.1.0 Python版1 二叉树 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130 7.2 二叉树遍历 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135 7.3 二叉树数组表示 . . 179 9.2 图的基础操作 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183 9.3 图的遍历 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188 9.4 小结 . . . 。 以下函数基于 for 循环实现了求和 1 + 2 + ⋯ + ? ,求和结果使用变量 res 记录。需要注意的是,Python 中 range(a, b) 对应的区间是“左闭右开”的,对应的遍历范围为 ?, ? + 1, … , ? − 1 : # === File: iteration.py === def for_loop(n: int) -> int: """for 循环"""0 码力 | 364 页 | 18.42 MB | 1 年前3 Hello 算法 1.1.0 Python版1 二叉树 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130 7.2 二叉树遍历 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135 7.3 二叉树数组表示 . . 179 9.2 图的基础操作 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183 9.3 图的遍历 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188 9.4 小结 . . . 。 以下函数基于 for 循环实现了求和 1 + 2 + ⋯ + ? ,求和结果使用变量 res 记录。需要注意的是,Python 中 range(a, b) 对应的区间是“左闭右开”的,对应的遍历范围为 ?, ? + 1, … , ? − 1 : # === File: iteration.py === def for_loop(n: int) -> int: """for 循环"""0 码力 | 364 页 | 18.42 MB | 1 年前3
 Hello 算法 1.0.0 Python版1 二叉树 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130 7.2 二叉树遍历 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135 7.3 二叉树数组表示 . . 179 9.2 图的基础操作 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183 9.3 图的遍历 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189 9.4 小结 . . . 。 以下函数基于 for 循环实现了求和 1 + 2 + ⋯ + ? ,求和结果使用变量 res 记录。需要注意的是,Python 中 range(a, b) 对应的区间是“左闭右开”的,对应的遍历范围为 ?, ? + 1, … , ? − 1 : # === File: iteration.py === def for_loop(n: int) -> int: """for 循环"""0 码力 | 362 页 | 17.54 MB | 1 年前3 Hello 算法 1.0.0 Python版1 二叉树 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130 7.2 二叉树遍历 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135 7.3 二叉树数组表示 . . 179 9.2 图的基础操作 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183 9.3 图的遍历 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189 9.4 小结 . . . 。 以下函数基于 for 循环实现了求和 1 + 2 + ⋯ + ? ,求和结果使用变量 res 记录。需要注意的是,Python 中 range(a, b) 对应的区间是“左闭右开”的,对应的遍历范围为 ?, ? + 1, … , ? − 1 : # === File: iteration.py === def for_loop(n: int) -> int: """for 循环"""0 码力 | 362 页 | 17.54 MB | 1 年前3
 Hello 算法 1.0.0b5 Python版1 二叉树 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124 7.2 二叉树遍历 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130 7.3 二叉树数组表示 . . 9.2 图基础操作 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180 9.3 图的遍历 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186 9.4 小结 . . . 。 以下函数基于 for 循环实现了求和 1 + 2 + ⋯ + ? ,求和结果使用变量 res 记录。需要注意的是,Python 中 range(a, b) 对应的区间是“左闭右开”的,对应的遍历范围为 ?, ? + 1, … , ? − 1 。 # === File: iteration.py === def for_loop(n: int) -> int: """for 循环"""0 码力 | 361 页 | 30.64 MB | 1 年前3 Hello 算法 1.0.0b5 Python版1 二叉树 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124 7.2 二叉树遍历 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130 7.3 二叉树数组表示 . . 9.2 图基础操作 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180 9.3 图的遍历 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186 9.4 小结 . . . 。 以下函数基于 for 循环实现了求和 1 + 2 + ⋯ + ? ,求和结果使用变量 res 记录。需要注意的是,Python 中 range(a, b) 对应的区间是“左闭右开”的,对应的遍历范围为 ?, ? + 1, … , ? − 1 。 # === File: iteration.py === def for_loop(n: int) -> int: """for 循环"""0 码力 | 361 页 | 30.64 MB | 1 年前3
 Hello 算法 1.0.0b2 Python版二叉树 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85 7.2. 二叉树遍历 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93 7.3. 二叉搜索树 . . 图基础操作 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131 9.3. 图的遍历 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137 9.4. 小结 . . for _ in range(n): count += 1 return count 「遍历数组」和「遍历链表」等操作,时间复杂度都为 ?(?) ,其中 ? 为数组或链表的长度。 � 数据大小 ? 是根据输入数据的类型来确定的。比如,在上述示例中,我们直接将 ? 看作输入数 据大小;以下遍历数组示例中,数据大小 ? 为数组的长度。 # === File: time_complexity0 码力 | 186 页 | 15.69 MB | 1 年前3 Hello 算法 1.0.0b2 Python版二叉树 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85 7.2. 二叉树遍历 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93 7.3. 二叉搜索树 . . 图基础操作 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131 9.3. 图的遍历 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137 9.4. 小结 . . for _ in range(n): count += 1 return count 「遍历数组」和「遍历链表」等操作,时间复杂度都为 ?(?) ,其中 ? 为数组或链表的长度。 � 数据大小 ? 是根据输入数据的类型来确定的。比如,在上述示例中,我们直接将 ? 看作输入数 据大小;以下遍历数组示例中,数据大小 ? 为数组的长度。 # === File: time_complexity0 码力 | 186 页 | 15.69 MB | 1 年前3
 Hello 算法 1.2.0 简体中文 Python 版1 二叉树 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130 7.2 二叉树遍历 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135 7.3 二叉树数组表示 . . 179 9.2 图的基础操作 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183 9.3 图的遍历 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188 9.4 小结 . . . 。 以下函数基于 for 循环实现了求和 1 + 2 + ⋯ + ? ,求和结果使用变量 res 记录。需要注意的是,Python 中 range(a, b) 对应的区间是“左闭右开”的,对应的遍历范围为 ?, ? + 1, … , ? − 1 : # === File: iteration.py === def for_loop(n: int) -> int: """for 循环"""0 码力 | 364 页 | 18.43 MB | 10 月前3 Hello 算法 1.2.0 简体中文 Python 版1 二叉树 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130 7.2 二叉树遍历 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135 7.3 二叉树数组表示 . . 179 9.2 图的基础操作 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183 9.3 图的遍历 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188 9.4 小结 . . . 。 以下函数基于 for 循环实现了求和 1 + 2 + ⋯ + ? ,求和结果使用变量 res 记录。需要注意的是,Python 中 range(a, b) 对应的区间是“左闭右开”的,对应的遍历范围为 ?, ? + 1, … , ? − 1 : # === File: iteration.py === def for_loop(n: int) -> int: """for 循环"""0 码力 | 364 页 | 18.43 MB | 10 月前3
 Hello 算法 1.0.0b1 Python版二叉树 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84 7.2. 二叉树遍历 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92 7.3. 二叉搜索树 . . 图基础操作 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130 9.3. 图的遍历 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136 9.4. 小结 . . for _ in range(n): count += 1 return count 「遍历数组」和「遍历链表」等操作,时间复杂度都为 ?(?) ,其中 ? 为数组或链表的长度。 � 数据大小 ? 是根据输入数据的类型来确定的。比如,在上述示例中,我们直接将 ? 看作输入数 据大小;以下遍历数组示例中,数据大小 ? 为数组的长度。 # === File: time_complexity0 码力 | 178 页 | 14.67 MB | 1 年前3 Hello 算法 1.0.0b1 Python版二叉树 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84 7.2. 二叉树遍历 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92 7.3. 二叉搜索树 . . 图基础操作 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130 9.3. 图的遍历 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136 9.4. 小结 . . for _ in range(n): count += 1 return count 「遍历数组」和「遍历链表」等操作,时间复杂度都为 ?(?) ,其中 ? 为数组或链表的长度。 � 数据大小 ? 是根据输入数据的类型来确定的。比如,在上述示例中,我们直接将 ? 看作输入数 据大小;以下遍历数组示例中,数据大小 ? 为数组的长度。 # === File: time_complexity0 码力 | 178 页 | 14.67 MB | 1 年前3
 理解Python中的AST 何翔宇 使⽤用 Python/python-ast.c ⽣生成 AST - PyAST_CompileObject()、PySymtable_BuildObject()、compiler_mod() - 遍历 AST 各个节点创建符号表 - 交给⼀一个巨⼤大「switch」处理理,创建 CFG parse tree AST transform A CFG transform B bytecode Tree Snakes - the missing Python AST docs How to Use AST Library ast.NodeTransfromer:这个类允许遍历抽象语法树同时可以修改节点,通过 继承该类,并且实现 visit_{NODE_NAME} ⽅方法,可以⾃自定义该节点的处理理⽅方 法。如果没有定义处理理⽅方法将会调⽤用 NodeVisitor 中的 source via the AST. •通过 Armin Ronacher 的 codegen.py 直接编译,⽣生成易易于阅读的源码 •打印出美观的 AST 便便于调试 •提供⾮非递归的遍历能⼒力力 Use AST to Solve Problems Use AST to Solve Problems 假设我们有⽆无数个类似于这样的函数 Use AST to Solve Problems0 码力 | 39 页 | 6.95 MB | 1 年前3 理解Python中的AST 何翔宇 使⽤用 Python/python-ast.c ⽣生成 AST - PyAST_CompileObject()、PySymtable_BuildObject()、compiler_mod() - 遍历 AST 各个节点创建符号表 - 交给⼀一个巨⼤大「switch」处理理,创建 CFG parse tree AST transform A CFG transform B bytecode Tree Snakes - the missing Python AST docs How to Use AST Library ast.NodeTransfromer:这个类允许遍历抽象语法树同时可以修改节点,通过 继承该类,并且实现 visit_{NODE_NAME} ⽅方法,可以⾃自定义该节点的处理理⽅方 法。如果没有定义处理理⽅方法将会调⽤用 NodeVisitor 中的 source via the AST. •通过 Armin Ronacher 的 codegen.py 直接编译,⽣生成易易于阅读的源码 •打印出美观的 AST 便便于调试 •提供⾮非递归的遍历能⼒力力 Use AST to Solve Problems Use AST to Solve Problems 假设我们有⽆无数个类似于这样的函数 Use AST to Solve Problems0 码力 | 39 页 | 6.95 MB | 1 年前3
 python3学习手册#判断strx是否为纯数字字符,是则返回True,否则 返回False lists=["abc","def","what"] strx="".join(lists) #默认直接拼接可遍历的对象,元素只可为 str,中间不会加入其他字符或删除其他字符 stry=",".join(lists) #拼接时在2元素str间添加 ""引号中指定的 符号,这里是添加逗号 strx 语句体 elif 判断句 : 语句体 else: 语句体 ★循环语句 ① for循环 for i in xx : # xx为可遍历的数据,如list,tuple,bytes,bytearray break #跳出当前循环,跳出for #使用索引: for i in range(10) print(len(arr[0])) # 列数 ★遍历字典dic�onary ①遍历key dictx = {"k1": "v1", "k2": "v2", "k3": "v3"} for key in dictx.keys(): print(key, "-------->", dictx[key]) ②遍历value dictx = {"k1": "v1", "k2":0 码力 | 213 页 | 3.53 MB | 1 年前3 python3学习手册#判断strx是否为纯数字字符,是则返回True,否则 返回False lists=["abc","def","what"] strx="".join(lists) #默认直接拼接可遍历的对象,元素只可为 str,中间不会加入其他字符或删除其他字符 stry=",".join(lists) #拼接时在2元素str间添加 ""引号中指定的 符号,这里是添加逗号 strx 语句体 elif 判断句 : 语句体 else: 语句体 ★循环语句 ① for循环 for i in xx : # xx为可遍历的数据,如list,tuple,bytes,bytearray break #跳出当前循环,跳出for #使用索引: for i in range(10) print(len(arr[0])) # 列数 ★遍历字典dic�onary ①遍历key dictx = {"k1": "v1", "k2": "v2", "k3": "v3"} for key in dictx.keys(): print(key, "-------->", dictx[key]) ②遍历value dictx = {"k1": "v1", "k2":0 码力 | 213 页 | 3.53 MB | 1 年前3
 Python 标准库参考指南 3.13 返回一个iterator 对象。该对象需要支持下文所述的迭代器协议。如果容器支持不同的迭代类型,则 可以提供额外的方法来专门地请求不同迭代类型的迭代器。(支持多种迭代形式的对象的例子有同 时支持广度优先和深度优先遍历的树结果。)此方法对应于 Python/C API 中 Python 对象类型结构体 的 tp_iter 槽位。 迭代器对象自身需要支持以下两个方法,它们共同组成了 迭代器协议: iterator exception NotADirectoryError 当请求对一个非目录执行目录操作 (如os.listdir()) 时将被引发。在大多数 POSIX 平台上,它还 可能在某个操作试图将一个非目录作为目录打开或遍历时被引发。对应于 errno ENOTDIR。 exception PermissionError 当在没有足够访问权限的情况下试图运行某个操作时将被引发——例如文件系统权限。对应于 errno 完成将格式字符串分解为字符数据和替换字段的工作。它会调用下文所述的几种 不同方法。 此外,Formatter 还定义了一些旨在被子类替换的方法: parse(format_string) 循环遍历 format_string 并返回一个由可迭代对象组成的元组 (literal_text, field_name, format_spec, conversion)。它会被vformat() 用来将字符串分解为文本字面值或替换字段。0 码力 | 2246 页 | 11.74 MB | 9 月前3 Python 标准库参考指南 3.13 返回一个iterator 对象。该对象需要支持下文所述的迭代器协议。如果容器支持不同的迭代类型,则 可以提供额外的方法来专门地请求不同迭代类型的迭代器。(支持多种迭代形式的对象的例子有同 时支持广度优先和深度优先遍历的树结果。)此方法对应于 Python/C API 中 Python 对象类型结构体 的 tp_iter 槽位。 迭代器对象自身需要支持以下两个方法,它们共同组成了 迭代器协议: iterator exception NotADirectoryError 当请求对一个非目录执行目录操作 (如os.listdir()) 时将被引发。在大多数 POSIX 平台上,它还 可能在某个操作试图将一个非目录作为目录打开或遍历时被引发。对应于 errno ENOTDIR。 exception PermissionError 当在没有足够访问权限的情况下试图运行某个操作时将被引发——例如文件系统权限。对应于 errno 完成将格式字符串分解为字符数据和替换字段的工作。它会调用下文所述的几种 不同方法。 此外,Formatter 还定义了一些旨在被子类替换的方法: parse(format_string) 循环遍历 format_string 并返回一个由可迭代对象组成的元组 (literal_text, field_name, format_spec, conversion)。它会被vformat() 用来将字符串分解为文本字面值或替换字段。0 码力 | 2246 页 | 11.74 MB | 9 月前3
共 33 条
- 1
- 2
- 3
- 4














