Python常用数据结构
为了准备清华的机考,花了大概半个小时整理了一下 Python 常用的数据结构的技巧(虽然可能存在其他直接的方法……)
数列
栈和队列的实现。
统一使用 append 压入数字。对于 pop:
1 | print(a.pop(0)) #删除第一个元素并返回,用来形成队列 |
排序
- 普通排序
1 | a = sorted(a, reverse = True) # 排序 |
- 多个数字排序
1 | import operator |
其中 operator.itemgetter 可以申明多个数字,是优先级的定义。
字典
快速创建字典
1 | a = set(range(14)) |
这个方法可以快速组件字典。
字典的操作
1 | res = set([1, 2, 3]) |
pop用来删除键,如果要删除的键不存在,则返回申明的第二个参数(这里是 0)。update用来更新字典,参数是另一个字典。速度比直接创建新字典快不少。
集合
我发现我几乎没用过 set,可能作为集合每个元素只能出现一次的性质我没太需要用到。
1 | x = set('spam') |
上述的功能都很直接,故不赘述。特殊的,如果往 set 里面增加重复的元素,则没有任何事事情会发生,所以可以用来快速移除重复元素;但 set 不会维护输入的顺序,所以不建议在使用 set 的情况下做与遍历顺序相关的操作。一般来说,使用if a in B的操作,set 会比 list 更快。