Collections

Collections:

1,namedtuple   生成可以使用名字来访问元素内容的tuple

  >>> Point = namedtuple('point',['x','y','z'])
  >>> p1 = Point(1,2,3)
  >>> p1
  point(x=1, y=2, z=3)
  >>> p2 = Point(4,5,6)
  >>> p2
  point(x=4, y=5, z=6)
  >>> p1.x
  1
  >>> p2.y
  5

2,deque  双端队列,高效实现插入和删除操作的双向列表,适用于队列和栈

 先看队列:

  queue:  队列,先进先出

   put()  往队列放值

   get()  从队列中取值

     qsize()   获取队列的长度

    >>> import queue
    >>> q = queue.Queue()
    >>> q.put(1)
    >>> q.put(2)
    >>> q.put(3)
    >>
    >>> q
    <queue.Queue object at 0x0000019A30A583A0>           内存地址
    >>> q.get()
    1  
    >>> q.get()
    2
    >>> q.get()
    3
    >> q.get()        #当取到最后一个的时候,会阻塞队列,程序一直运行无法结束

  再看双端队列

    

    >>> from collections import deque
    >>> dq = deque([1,2])                                  新建一个双端队列
    >>> dq
    deque([1, 2])
    >>> dq.append(3)           从后面增加数据
    >>> dq
    deque([1, 2, 3])
    >>> dq.appendleft(4)          从前面增加数据
    >>> dq
    deque([4, 1, 2, 3])
    >>> dq.pop()             从后面取数据,且取了就没有了
    3
    >>> dq
    eque([4, 1, 2])
    >>> dq.popleft()            从前面取数据,且取了就没有了
    4
    >>> dq
    eque([1, 2])    

    >>> dq.insert(1,3)            从指定位置添加数据,从1开始数 
    >>> dq
    deque([1, 3, 2])
    >>> dq.insert(2,4)
    >>> dq
    deque([1, 3, 4, 2])

3,ordereddict  有序字典,有序但没有索引

  >>> od = OrderedDict([('a',1),('b',2),('c',3)])                    创建有序字典对象
  >>> od
  OrderedDict([('a', 1), ('b', 2), ('c', 3)])
  >>> od['a']                     
  1  
  >>> od['b']                    取 b 对应的值
  2
  >>> for i in od:                  有序字典,可以for循环
     print(i)

  a
  b  
  c

4,defaultdict   字典中没有对于的key时也能直接添加value值

  from collections import defaultdict

  >>> d_dict = defaultdict(list)            defaultdict(a)   a必须是一个可被调用的名称  比如  list, str , int等   ,如果想要是一个默认的值,比如5  ,可以使用 lambda : 5 ,让它成为可调用的
  >>> d_dict['k1'].append(1)
  >>> d_dcit

  defaultdict(<class 'list'>, {'k1': [1]})

 

5,Counter ,  计数功能

  >>> from collections import Counter
  >>> a = 'abbcccdddd'
  >>> a
  'abbcccdddd'
  >>>
  >>>
  >>> c = Counter(a)
  >>> c
  Counter({'d': 4, 'c': 3, 'b': 2, 'a': 1})

posted @ 2020-03-20 17:10  2020不在低调  阅读(118)  评论(0)    收藏  举报