zoukankan      html  css  js  c++  java
  • Python Cookbook


    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)
     
    KEEP LEARNING!
  • 相关阅读:
    百度地图学习
    JS中call和apply区别有哪些 记录
    初次学习AngularJS
    C#中Abstract和Virtua笔记,知识
    css学习笔记四
    css学习笔记三
    jquery基础 笔记三
    jquery基础 笔记二
    jquery基础 笔记一
    负边距在布局中的应用
  • 原文地址:https://www.cnblogs.com/roronoa-sqd/p/5441112.html
Copyright © 2011-2022 走看看