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的主要内容,如果未能解决你的问题,请参考以下文章

金蝶handler中 collection 代码片段理解

python 机器学习有用的代码片段

学习笔记:python3,代码片段(2017)

Python基础22_模块,collections,time,random,functools

铁乐学python27_模块学习2

python 必须模块collections