python 学习_collection
Posted augustyang
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python 学习_collection相关的知识,希望对你有一定的参考价值。
collections模块在内置数据类型(dict list set tuple)的基础上, 还提供了几个额外的数据类型
ChainMap Counter depue defaultdict namedtuple OrderedDict
1. namedtuple 生成可以使用名字来访问元素内容的tuple子集
2. deque 双端队列 可以快速的从另一端追加和退出对象
3. Counter 计算器 主要用来计数
4. OrderedDict 有序字典
5. defaultdict 带有默认值的字典
# 1. namedtuple 生成可以使用名字来访问元素内容的tuple子集 from collections import namedtuple Point = namedtuple("Point",[‘x‘,‘y‘]) p = Point(1,2) print(p.x) #1 print(p.y) #2 print(p) #Point(x=1, y=2)
# 2. deque 双端队列 可以快速的从另一端追加和退出对象 from collections import deque q = deque([‘a‘,‘b‘,‘c‘]) q.append(‘x‘) q.appendleft(‘y‘) print(q)
#3. Counter 计算器 主要用来计数 from collections import Counter c = Counter() for word in [‘red‘, ‘blue‘, ‘red‘, ‘green‘, ‘blue‘, ‘blue‘]: c[word] = c[word] + 1 print(c) # Counter({‘blue‘: 3, ‘red‘: 2, ‘green‘: 1})
# 4. OrderedDict 有序字典 # 使用dict时,Key是无序的。在对dict做迭代时,我们无法确定Key的顺序。 # 如果要保持Key的顺序,可以用OrderedDict: from collections import OrderedDict d = dict(a=1,b=2,c=3) od = OrderedDict(a=1,b=2,c=3) print(od) # # OrderedDict的 Key 是有序的
from collections import OrderedDict od = OrderedDict(a=1,b=2,c=3) od[‘z‘] =222 print(od.keys()) # odict_keys([‘a‘, ‘b‘, ‘c‘, ‘z‘])
# OrderedDict 可以实现FIFO(先进先出)的dict 当容量超出限制时, 先删除最早添加的key
# 5. defaultdict 带有默认值的字典 # 使用dict时,如果引用的Key不存在,就会抛出KeyError。如果希望key不存在时,返回一个默认值,就可以用defaultdict: from collections import defaultdict dd = defaultdict(lambda: ‘WWWW‘) dd[‘key1‘] = ‘abc‘ print(dd[‘key1‘]) # abc print(dd[‘key12‘]) # WWWW 不存在 返回默认值 s = ‘mississippi‘ d = collections.defaultdict(int) for i in s: d[i] +=1 print(d) #defaultdict(<class ‘int‘>, {‘m‘: 1, ‘i‘: 4, ‘s‘: 4, ‘p‘: 2})
以上是关于python 学习_collection的主要内容,如果未能解决你的问题,请参考以下文章