zoukankan      html  css  js  c++  java
  • python之collection模块

    collections 是python内建的一个集合模块。

    namedtuple可以很方便的定义一种数据类型,他具备tuple的不可变性,也可以根据属性来引用,非常方便。

    from collections import  namedtuple
    point = namedtuple('p',['x','y'])
    p = point(1,2)
    print(p.x) #1
    print(p.y) #2
    # namedtuple('名称', [属性list]):
    Circle = namedtuple('Circle', ['x', 'y', 'r'])

    deque可以高效的实现插入和删除的双向列表,适用于队列和栈。

    from collections import deque
    q= deque(['a','b','c'])
    q.append('x') 
    q.appendleft('y')
    print(q) 
    
    #deque(['y', 'a', 'b', 'c', 'x'])
    

    defaultdict

    使用dict时,如果key不存在,则抛出KeyError,如果希望key不存在时,返回一个默认值,可以用defaultdict。

    from collections import defaultdict
    dic = defaultdict(lambda :'N/A')
    dic['k1'] = 'abc'
    print(dic['k1']) #‘abc’
    print(dic['k2']) #N/A
    

    OrderedDict

    使用dict时,key是无序的,如果要保证key的顺序,可以用OrderedDict。OrderedDict的key是按照插入的顺序排列,不是key本身排序。

    from collections import OrderedDict
    dic = dict([('a',1),('b',2),('c',3)])
    dic1 = OrderedDict([('a',1),('b',2),('c',3)])
    print(dic.keys()) #dict_keys(['a', 'b', 'c'])
    print(dic1.keys()) #odict_keys(['a', 'b', 'c'])
    

    Counter是一个简单的计数器,目的是用来跟踪值出现的次数。它是一个无序的容器类型,以字典的键值对形式存储。其中元素为key,个数为value. 计数值可以是任意的interger(含0和负数)

    from collections import Counter
    c = Counter('abcdeabcdabcaba')
    print(c)
    输出:Counter({'a': 5, 'b': 4, 'c': 3, 'd': 2, 'e': 1})

      

  • 相关阅读:
    383. Ransom Note
    598. Range Addition II
    453. Minimum Moves to Equal Array Elements
    492. Construct the Rectangle
    171. Excel Sheet Column Number
    697. Degree of an Array
    665. Nondecreasing Array
    视频网站使用H265编码能提高视频清晰度吗?
    现阶段的语音视频通话SDK需要解决哪些问题?
    企业远程高清会议平台视频会议系统在手机端使用的必备要求有哪些?
  • 原文地址:https://www.cnblogs.com/Uncle-Guang/p/9008394.html
Copyright © 2011-2022 走看看