一, collections 模块
1. 函数 namedtuple
(1) 作用: tuple 类型, 是一个可命名的 tuple
(2) 格式: collections(列表名称, 列表)
(3)返回值: 一个含有列表的类
(4) 例子:
- import collections
- # help(collections.namedtuple)
- Point = collections.namedtuple("Point",['x','y'])
- p = Point(15,45)
- print(p.x+p.y)
- print(p[0]+p[1])
- # 支持索引等
- # 应用举例
- Circle = collections.namedtuple('Circle',['x','y','r'])
- circle = Circle(14,15,45)
- propotion = circle[2]*circle[2]*3.141596
- print("圆的面积为",propotion)
2. 函数 deque
(1) 作用: 比较方便的解决了频繁删除插入带来的效率问题
(2)格式: deque(列表)
(3) 返回值: 列表
(4) 例子:
- q = collections.deque(['a','b','c'])
- print(q)
- q.append('sada')
- q.appendleft('left')
- print(q)
- help(collections.deque)
3. 函数: defaultdict
(1) 作用: 当读取 dict 不存在的属性时, 会返回默认值
(2) 格式: collections.defaultdict(函数)
(3)返回值: 返回括号里的函数
(4) 例子:
我们定义一个字典, 但是当我们打印一个不存在的索引的时候, 会报错, 因此我们在定义一个函数, 当索引不存在的时候让他返回这个函数.
这个类似于我们使用:
try...except... 这个关键字的用法
- d1 = {
- "one":1,"two":2,"three":3
- }
- print("four")
- # 上面的会报错, 下面的就会返回函数, 告诉我们错了
- func = lambda:"错了"
- d2 = collections.defaultdict(func)
- d2['one']=1
- d2['two']=2
- print(d2['four'])
4. 函数 Couter
(1) 作用: 统计字符串的个数
(2) 格式: collections.Counter()
(3) 返回值: 可迭代内容的字典的 Counter 类
(4) 例子:
- list1 = collections.Counter("aaabbbccc")
- print(list1)
- list2 = collections.Counter(['abc','sad','sad','abc','abc','ffds'])
- print(list2)
(5) 总结: 括号内的内容必须是可迭代的才可以进行统计, 这里这两个例子不一样, 第一个统计的时字符串的字母个数, 第二个统计的列表中的元素重复个数, 符合我们对可迭代的理解.
二, 源码: d21_1_collections_module
地址: https://github.com/ruigege66/Python_learning/blob/master/d21_1_collections_module
2.CSDN:https://blog.csdn.net/weixin_44630050(心悦君兮君不知 - 睿)
3. 博客园: https://www.cnblogs.com/ruigege0000/
来源: https://www.cnblogs.com/ruigege0000/p/11154949.html