随笔分类 - python 程序设计
摘要:对于 python 中的全局变量,在函数体内只能访问,不可修改。若想修改则需要用 global 关键字声明。 eg: c = 1 def f(): print(c) f() # 可执行 c = 1 def g(): global c # 在函数体内修改全局变量,需要声明 c += 1 print(c
阅读全文
摘要:arr.sort() 和 sorted(arr) 前者改变原列表;后者不改变,而是直接生成一个排好序的新列表。 复杂列表排序:利用 \(sorted()\) 中的 \(key\) 即可。 格式:\(sorted(arr, key=..., reverse=...)\) # 将字符串按照长度升序排序
阅读全文
摘要:在python中,使用 \(heapq\) 库来实现堆: import heapq 堆的初始化:直接初始化一个空列表即可。 heap = [] 将给定列表初始化成小根堆,可以使用 \(heapify\) 函数: a = [1, 3, 2, 4, 6, 5] heapq.heapify(a) 初始化默
阅读全文
摘要:需要注意,\(python\) 的列表与 \(CPP\) 的 \(vector\) 在赋值方面原理并不相同: \(vector\) 的直接赋值本身就是深拷贝;而 \(python\) 列表的赋值是浅拷贝。也就是说在做题的过程中,不可以直接用 "\(b = a\)" 的方式来直接复制一个列表,而要使用
阅读全文
摘要:在 \(python\) 程序设计中,使用的队列常常不是库 \(queue\) 中的普通队列,而是直接用双端队列 \(deque\) 来代替普通队列,因为前者的速度太慢了。 下面记录的是 \(deque\) 的一些常见用法: 引入库: from collections import deque 定义
阅读全文
摘要:定义空字典: dict = {} 添加——直接赋值即可,eg: dict[1] = 2 (注意要访问的键不存在时,只有赋值语句可访问,其他形式的访问均会报错 \(KeyError\)) 删除: del dict[1] 遍历: dict.keys() -> 提取所有键 dict.values() ->
阅读全文