python之collection模块
Posted 不夜男人
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python之collection模块相关的知识,希望对你有一定的参考价值。
collections 是python内建的一个集合模块。
namedtuple可以很方便的定义一种数据类型,他具备tuple的不可变性,也可以根据属性来引用,非常方便。
1
2
3
4
5
|
from collections import namedtuple point = namedtuple( ‘p‘ ,[ ‘x‘ , ‘y‘ ]) p = point( 1 , 2 ) print (p.x) #1 print (p.y) #2 |
# namedtuple(‘名称‘, [属性list]):
Circle = namedtuple(‘Circle‘, [‘x‘, ‘y‘, ‘r‘])
deque可以高效的实现插入和删除的双向列表,适用于队列和栈。
1
2
3
4
5
6
7
|
from collections import deque q = deque([ ‘a‘ , ‘b‘ , ‘c‘ ]) q.append( ‘x‘ ) q.appendleft( ‘y‘ ) print (q) #deque([‘y‘, ‘a‘, ‘b‘, ‘c‘, ‘x‘]) |
defaultdict
使用dict时,如果key不存在,则抛出KeyError,如果希望key不存在时,返回一个默认值,可以用defaultdict。
1
2
3
4
5
|
from collections import defaultdict dic = defaultdict( lambda : ‘N/A‘ ) dic[ ‘k1‘ ] = ‘abc‘ print (dic[ ‘k1‘ ]) #‘abc’ print (dic[ ‘k2‘ ]) #N/A |
OrderedDict
使用dict时,key是无序的,如果要保证key的顺序,可以用OrderedDict。OrderedDict的key是按照插入的顺序排列,不是key本身排序。
1
2
3
4
5
|
from collections import OrderedDict dic = dict ([( ‘a‘ , 1 ),( ‘b‘ , 2 ),( ‘c‘ , 3 )]) dic1 = OrderedDict([( ‘a‘ , 1 ),( ‘b‘ , 2 ),( ‘c‘ , 3 )]) print (dic.keys()) #dict_keys([‘a‘, ‘b‘, ‘c‘]) print (dic1.keys()) #odict_keys([‘a‘, ‘b‘, ‘c‘]) |
Counter是一个简单的计数器,目的是用来跟踪值出现的次数。它是一个无序的容器类型,以字典的键值对形式存储。其中元素为key,个数为value. 计数值可以是任意的interger(含0和负数)
from collections import Counter
c = Counter(‘abcdeabcdabcaba‘)
print(c)
1
|
输出:Counter({ ‘a‘ : 5 , ‘b‘ : 4 , ‘c‘ : 3 , ‘d‘ : 2 , ‘e‘ : 1 }) |
以上是关于python之collection模块的主要内容,如果未能解决你的问题,请参考以下文章