廖雪峰python学习笔记【19】collections

1. collections是python内置的一个集合模块。提供了许多有用的集合类。

2. namedtuple

    2.1 namedtuple是collections模块中的一个函数。

    2.2 创建出来的是自定义的tuple对象。

    2.3 可以通过属性来访问自定义tuple的某个元素。

    2.4 示例:

            from collections import namedtuple
            Point = namedtuple('Point', ['x', 'y']) # 自定义了一个Point类,该类是tuple的子类。
            p = Point(12, 33) # p是Point类的对象。

3. deque

    3.1 双向list。除了实现了list的append和pop方法外,还支持appendleft和popleft方法,可以实现在list头部添加和删除元素。

    3.2 示例:

        from collections import deque
        ll = deque(['a', 'b', 'c']) # 创建deque类的实例ll。deque类不是list的子类。
        ll.appendleft('d')
        ll.append('e')
        # ll is ['d', 'a', 'b', 'c', e]

4. defaultdict

    4.1 示例:

        from collections import defaultdict
        dd = defaultdict(lambda : "N/A") # 创建defaultdict类的实例dd。defaultdict类是dict类的子类。
        dd['k1'] = 'v1'
        dd['k2'] = 'v2'
        print(dd['k3']) # k3这个key是不存在的,输出:N/A

    4.2 使用dict时,如果访问的key不存在,则会报KeyError错误。

    4.3 使用defaultdict时,如果访问的key不存在,则会输出默认值;默认值是创建defaultdict类的实例时,传入的函数的返回值。

5. OrderedDict

    5.1 使用dict时,key是无序的。

    5.2 使用OrderedDict时,key是按照插入的顺序排序的。

6. Counter

    6.1 Counter是dict的子类。

    6.2 Counter是一个计数器。

    6.3 示例:

            from collections import Counter
            cc = Counter()
            for ch in 'abbcccdddd':
            cc[ch] = cc[ch] + 1 # 统计字符出现的次数。
            print(cc) # 输出:{'a' : 1, 'b' : 2, 'c' : 3, 'd' : 4}

猜你喜欢

转载自blog.csdn.net/liufuchun111/article/details/80775950