1 序列解压:通过*来通配

*a, b = somelist,   first, *mid, last = somelist,  a, *b = somelist

2 使用双向队列: from collections import deque

q = deque(maxlen=5)  可以固定长度

q = deque()   也可以任意长度

 可以从两端进行插入和删除,append, appendleft, pop , popleft

3 查找最大或最小的N个元素: 使用heapq (堆队列)

  heapq.nlargest(N, alist)    heapq.nsmallest(N, alist)   适合N相对较小时

  也可以sorted(alist)[-N:]    sorted(alist)[:N]                 适合N相对较大时

4 实现一个优先级队列

import heapq

class PriorityQueue:
def __init__(self):
self._queue = []
self._index = 0 def push(self, item, priority):
heapq.heappush(self._queue, (-priority, self._index, item))
self._index += 1 def pop(self):
return heapq.heappop(self._queue)[-1]

5 字段中的键映射多个值 defaultdict

from collections import defaultdict
d = defaultdict(list)
d['a'].append(1)
d['a'].append(2)
d['b'].append(5)
 

最新文章

  1. 如何用Dockerfile创建镜像
  2. js 中与元素有关的高度
  3. canvas对象arc函数的使用-遁地龙卷风
  4. IOS- Run Loops
  5. Apache与Nginx的区分比较
  6. fscanf()函数具体解释
  7. java正则表达式,将字符串中\后的第一个字母变成大写
  8. 【图像识别】 图像处理和图像分析(leptonica)leptonica-1.68安装配置 (vs2008)
  9. 疯狂Java学习笔记(84)----------大约 Java 对象序列化,你不知道 5 事
  10. (一)Python之猜数游戏
  11. Nginx日志切割案例讲解,Nginx的知识讲解
  12. FiddlerCoreAPI开发(一)源码分析
  13. Maven的Archetype简介
  14. Java多线程JUC
  15. Python编程从入门到实践笔记——字典
  16. 多线程——C++
  17. Android Eclipse 安装教程 hosts替换
  18. 日志那点事儿——slf4j源码剖析
  19. numpy笔记—np.squeeze用法
  20. C# SpinLock实现

热门文章

  1. Aa3.0 事件机制
  2. 自己通过反射写的一个属性copy类
  3. BAPI_GOODSMVT_CREATE 移动类型201 CODE = '03' 代码
  4. md5证书在window2012不能访问
  5. Linux常用命令汇总及使用方法(二)之文本编辑器VI
  6. FireFox的配置文件的引用
  7. shell中$(( )) 与 $( ) 还有${ }的区别
  8. 数据库及SQL优化
  9. JavaBean 反射机制实现自动配置数据
  10. hdu1020