Python collections 集合类使用

  1. namedtuple('名称',[属性list])
    有名字的元组,与类的属性有些相似,以下定义了一个点,和它的x坐标、y坐标

    import collections
    
    Point=collections.namedtuple('Point',['x','y'])
    p=Point(1,2)
    print('x =',p.x)
    print('y =',p.y)
    
    
  2. duque
    为了实现高效插入和删除操作的双向列表,适合用于队列和栈
    可以使用append(),appendleft(),pop(),popleft()进行双向的增删

    q=collections.deque(['a','b','c'])
    q.append('x')
    q.appendleft('y')
    print(q)
    
    q.pop()
    q.popleft()
    print(q)
    
    
    #deque(['y', 'a', 'b', 'c', 'x'])
    #deque(['a', 'b', 'c'])
    
  3. defaultdict
    可以设置字典key不存在时返回的默认值
    dd=defaultdict(lambda:'Not exist')
    若key不存在就将返回Not exist

    dd=collections.defaultdict(lambda:'Not exist')
    dd['a']=1
    print(dd['a'])
    print(dd['b'])
    
    
    #1
    #Not exist
    
  1. OrderedDict
    有序的字典
    按照key插入顺序排序,使字典变的有序

    od=collections.OrderedDict([('c',1),('a',2),('b',3)])
    print(od)
    print(od.keys())
    print(od.values())
    print(od['a'])
    
    
    #OrderedDict([('c', 1), ('a', 2), ('b', 3)])
    #odict_keys(['c', 'a', 'b'])
    #odict_values([1, 2, 3])
    #2
    
  1. Counter
    用于统计字符串中每个字符出现的次数,区分大小写,空格也会被统计
    返回值是一个字典
    c=collections.Counter()
    text='Hello John'
    for ch in text:
        c[ch]+=1
    print(c)
    
    #Counter({'l': 2, 'o': 2, 'H': 1, 'e': 1, ' ': 1, 'J': 1, 'h': 1, 'n': 1})
    
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容