zoukankan      html  css  js  c++  java
  • collections之python基本应用

    Collections主要功能

    • Counter 类
    • defaultdict 类
    • namedtuple 类
    • deque类
    • orderedDict类

    Counter 是一个有助于 hashable 对象计数的 dict 子类。它是一个无序的集合,其中hashable对象的元素存储为键,它们的计数存储为值,计数可以为任意的整数,包括零和负数

    可以在python的shell中查看Counter的帮助信息

    c=collections.Counter('from collections import Counter')
    print c

    Counter({'o': 5, ' ': 3, 'r': 3, 't': 3, 'c': 2, 'e': 2, 'i': 2, 'm': 2, 'l': 2, 'n': 2, 'f': 1, 'p': 1, 's': 1, 'u': 1, 'C': 1})
    print c.most_common(4)

    [('o', 5), (' ', 3), ('r', 3), ('t', 3)]
    print sorted(c) 对字典进行排序

    [' ', 'C', 'c', 'e', 'f', 'i', 'l', 'm', 'n', 'o', 'p', 'r', 's', 't', 'u']
    print sum(c.values())计算字典的值
    print c.keys()返回字典的键

    Defaultdict的作用是如果字典的key不存在,使用的时候也不抛出异常,而返回一个默认值,默认值为None

    dic=collections.defaultdict(lambda: 'N/A')
    dic['a']='abd'
    print dic['a']
    print dic['b'] 返回N/A

     

    namedtuple命名元组有助于对元组每个位置赋予意义,并且让我们的代码有更好的可读性和自文档性。你可以在任何使用元组地方使用命名元组

    point=collections.namedtuple('point',['x','y','z'])
    n=point(2,5,78)
    print n.x

     

    deque,使用list 存储数据时,按照索引访问元素很快,但是插入和删除元素就很慢了,因为list是线性存储,数据量大的时候,插入和删除效率很低。deque是为了高效实现插入和删除操作的双向列表,适合用于队列和栈。

    q=collections.deque([1,2,3])
    q.appendleft(5)
    print q
    q.popleft()
    print q

     

    字典是无序的。orderedDict是有序字典的应用。OrderedDict 的有序性是按照插入的顺序,而不是KEY的顺序。
    d=dict([('a', 1), ('b', 2), ('c', 3)])
    print d  {'a': 1, 'c': 3, 'b': 2}

    od = collections.OrderedDict([('a', 1), ('b', 2), ('c', 3)])
    print od  OrderedDict([('a', 1), ('b', 2), ('c', 3)])

  • 相关阅读:
    模板之导入include
    模板之继承
    jQuery ajax简单用法
    Django 路由系统URL
    Django 的简单使用
    python selenium web自动化的三种等待的区别
    Django的数据库介绍
    Django 安装与介绍
    插件轮播
    bootstrap 简单使用(实现图标和按钮下拉)
  • 原文地址:https://www.cnblogs.com/hellowcf/p/7344714.html
Copyright © 2011-2022 走看看