-
namedtuple('名称',[属性list])
有名字的元组,与类的属性有些相似,以下定义了一个点,和它的x坐标、y坐标import collections Point=collections.namedtuple('Point',['x','y']) p=Point(1,2) print('x =',p.x) print('y =',p.y)
-
duque
为了实现高效插入和删除操作的双向列表,适合用于队列和栈
可以使用append(),appendleft(),pop(),popleft()进行双向的增删q=collections.deque(['a','b','c']) q.append('x') q.appendleft('y') print(q) q.pop() q.popleft() print(q) #deque(['y', 'a', 'b', 'c', 'x']) #deque(['a', 'b', 'c'])
-
defaultdict
可以设置字典key不存在时返回的默认值
dd=defaultdict(lambda:'Not exist')
若key不存在就将返回Not existdd=collections.defaultdict(lambda:'Not exist') dd['a']=1 print(dd['a']) print(dd['b']) #1 #Not exist
-
OrderedDict
有序的字典
按照key插入顺序排序,使字典变的有序od=collections.OrderedDict([('c',1),('a',2),('b',3)]) print(od) print(od.keys()) print(od.values()) print(od['a']) #OrderedDict([('c', 1), ('a', 2), ('b', 3)]) #odict_keys(['c', 'a', 'b']) #odict_values([1, 2, 3]) #2
- Counter
用于统计字符串中每个字符出现的次数,区分大小写,空格也会被统计
返回值是一个字典c=collections.Counter() text='Hello John' for ch in text: c[ch]+=1 print(c) #Counter({'l': 2, 'o': 2, 'H': 1, 'e': 1, ' ': 1, 'J': 1, 'h': 1, 'n': 1})