码迷,mamicode.com
首页 > 编程语言 > 详细

python小白-day3 collections系列

时间:2016-01-17 17:29:04      阅读:280      评论:0      收藏:0      [点我收藏+]

标签:

一、计数器(Counter)

Counter是对字典类型的补充,用于追踪值的出现次数。

注:因Counter继承于dict类,所以其具备dict类的所有功能

技术分享
1 import collections
2 c1 = collections.Counter(skdhflsdkngsnlknvdlfb)
3 print(c1)
Counter

技术分享

 1、__missing__(self, key)对于不存在的元素,返回计数器为0

import collections
c1 = collections.Counter(‘skdhflsdkngsnlknvdlfb‘)
print(c1.__missing__(‘q‘))

技术分享

2、most_common(self, n=None)显示前n个元素和计数器

技术分享
1 import collections
2 c1 = collections.Counter(skdhflsdkngsnlknvdlfb)
3 print(c1)
4 print(c1.most_common(4))
most_common

 

 

技术分享

3、elements(self)计数器中的所有元素,注:此处非所有元素集合,而是包含所有元素集合的迭代器

import collections
c1 = collections.Counter(‘skdhflsdkngsnlknvdlfb‘)
item = list(c1.elements())
print(item)

技术分享

4、update(self, iterable=None, **kwds)更新计数器,其实就是增加;如果原来没有,则新建,如果有则加一

技术分享
1 import collections
2 c = collections.Counter(which)
3 print(c)
4 c.update(witch)
5 print(c)
6 d = collections.Counter(watch)
7 c.update(d)
8 print(c)
update

 

技术分享

5、subtract(self, iterable=None, **kwds)相减,原来的计数器中的每一个元素的数量减去后添加的元素的数量

技术分享
1 import collections
2 c = collections.Counter(which)
3 print(c)
4 c.subtract(witch)
5 print(c)
6 d = collections.Counter(watch)
7 c.subtract(d)
8 print(c)
subtract

技术分享

二、有序字典(orderedDict )

orderdDict是对字典类型的补充,他记住了字典元素添加的顺序

技术分享
1 import collections
2 o = collections.OrderedDict()
3 o[k1] = v1
4 o[k2] = v2
5 o[k3] = v3
6 print(o)
7 print(o)
8 print(o)
9 print(o)
orderedict

 

技术分享

其余功能等同于字典

三、默认字典(defaultdict)

defaultdict是对字典的类型的补充,他默认给字典的值设置了一个类型。

技术分享
1 import collections
2 li = [11,22,33]
3 ded = collections.defaultdict(list)
4 for i in li:
5     ded[k1].append(i)
6 print(ded)
defaultdict

 

技术分享

四、可命名元组(namedtuple)

根据nametuple可以创建一个包含tuple所有功能以及其他功能的类型。

技术分享
1 import collections
2 person = collections.namedtuple(person,name age gender)
3 print(type(person))
4 hetan = person(name = hetan,age = 26,gender = male)
5 print(hetan[0])
6 print({name} is {age} years old {gender}.format(name = hetan[0],age = hetan[1],gender = hetan[2]))
namedtuple

技术分享

五、双向队列(deque)

一个线程安全的双向队列

技术分享
 1 import queue
 2 q = queue.deque()
 3 for i in [1,2,3,4,5]:
 4     q.append(i)
 5 print(q)
 6 q.appendleft(6)
 7 print(q)
 8 q.popleft()
 9 print(q)
10 q.rotate(2)
11 print(q)
12 li = [7,8,9,10]
13 q.extendleft(li)
14 print(q)
deque

1、appendleft(n)从左边像队列中增加元素,n表示增加的元素

2、popleft()从队列的左边删除元素,并且返回删除值

3、rotate(n)旋转队列,默认时值为1,由右边开始旋转,负值代表左边旋转,n代表从队列的第一个元素开始,n从1开始计数

4、extendleft(n)从左边扩展队列,n表示扩展的队列

技术分享

注:既然有双向队列,也有单项队列(先进先出 FIFO )

技术分享
1 import queue
2 q = queue.Queue()
3 for i in [1,2,3,4,5]:
4     q.put(i)
5 for i in range(5):
6     print(q.get())
Queue

技术分享

python小白-day3 collections系列

标签:

原文地址:http://www.cnblogs.com/hetan/p/5137398.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!