• collections


     

    collections

    collections是Python内建的一个集合模块


    namedtuple是一个函数,它用来创建一个自定义的tuple对象,并且规定了tuple元素的个数,并可以用属性而不是索引来引用tuple的某个元素。

    >>> from collections import namedtuple
    >>> Point = namedtuple('Point', ['x', 'y'])
    >>> p = Point(1, 2)
    >>> p.x
    1
    >>> p.y
    2

    用namedtuple可以很方便地定义一种数据类型,它具备tuple的不变性,又可以根据属性来引用

    如果要用坐标和半径表示一个圆,也可以用namedtuple定义:

    # namedtuple('名称', [属性list]):
    Circle = namedtuple('Circle', ['x', 'y', 'r'])

     


    deque

    deque是为了高效实现插入和删除操作的双向列表,适合用于队列和栈

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

    deque除了实现list的append()和pop()外,还支持appendleft()和popleft(),这样就可以非常高效地往头部添加或删除元素。

     


    defaultdict

    除了在Key不存在时返回默认值,defaultdict的其他行为跟dict是完全一样的

    >>> from collections import defaultdict
    >>> dd = defaultdict(lambda: 'N/A')
    >>> dd['key1'] = 'abc'
    >>> dd['key1'] # key1存在
    'abc'
    >>> dd['key2'] # key2不存在,返回默认值
    'N/A'


    OrderedDict

    使用dict时,Key是无序的
    如果要保持Key的顺序,可以用OrderedDict

    >>> from collections import OrderedDict
    >>> d = dict([('a', 1), ('b', 2), ('c', 3)])
    >>> d # dict的Key是无序的
    {'a': 1, 'c': 3, 'b': 2}
    >>> od = OrderedDict([('a', 1), ('b', 2), ('c', 3)])
    >>> od # OrderedDict的Key是有序的
    OrderedDict([('a', 1), ('b', 2), ('c', 3)])

    OrderedDict的Key会按照插入的顺序排列,不是Key本身排序


    Counter

    Counter是一个简单的计数器,例如,统计字符出现的个数:

    >>> from collections import Counter
    >>> c = Counter()
    >>> for ch in 'programming':
    ... c[ch] = c[ch] + 1
    ...
    >>> c
    Counter({'g': 2, 'm': 2, 'r': 2, 'a': 1, 'i': 1, 'o': 1, 'n': 1, 'p': 1})

     

    朝闻道
  • 相关阅读:
    jquery2
    数据库回顾
    jquery
    BOM DOM 注意事項
    JavaScript 注意
    javascrip
    CSS
    html
    网络编程
    淘宝下单高并发解决方案
  • 原文地址:https://www.cnblogs.com/wander-clouds/p/8487109.html
Copyright © 2020-2023  润新知