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

python培训Day3 随笔

时间:2015-11-09 14:04:37      阅读:162      评论:0      收藏:0      [点我收藏+]

标签:day3

collections类

这个类相当于一个扩展包,包含针对字典、列表、元组等数据类型的一些扩展操作。

1、计数器Counter

#计数器可以列出字符串和列表中元素出现的个数,并以字典返回

>>> import collections
>>> li=[‘a‘,‘b‘,‘a‘,‘c‘,‘a‘,‘b‘,‘d‘,‘d‘,‘a‘]
>>> st=‘asdasdasdasdasda‘
>>> li_c=collections.Counter(li)
>>> st_c=collections.Counter(st)
>>> print li_c
Counter({‘a‘: 4, ‘b‘: 2, ‘d‘: 2, ‘c‘: 1})
>>> print st_c
Counter({‘a‘: 6, ‘s‘: 5, ‘d‘: 5})
#通过most_comm()方法可以指定显示出现次数排名前n位的元素
>>> print li_c.most_common(3)
[(‘a‘, 4), (‘b‘, 2), (‘d‘, 2)]

#update()方法可以将两个计数器的统计结果相加

>>> import collections
>>> li_a=[‘a‘,‘b‘,‘a‘,‘c‘,‘a‘]
>>> li_b=[‘b‘,‘c‘]
>>> li_a_co=collections.Counter(li_a)
>>> li_b_co=collections.Counter(li_b)
>>> print li_a_co
Counter({‘a‘: 3, ‘c‘: 1, ‘b‘: 1})
>>> print li_b_co
Counter({‘c‘: 1, ‘b‘: 1})
>>> li_a_co.update(li_b_co) 
>>> print li_a_co
Counter({‘a‘: 3, ‘c‘: 2, ‘b‘: 2})


2、有序字典

#有序字典的的操作方法和标准字典完全一致,唯一的区别就是有序字典里的key是可以按照顺序展现出来的,这是因为有有序字典其实就是在标准字典的基础上又将key都存入了一个列表,通过列表管理key

>>> import collections
>>> ord_dic=collections.OrderedDict()
>>> ord_dic={}


3、默认字典

#标准字典中value的值数据类型是需要提前定义的,否则直接向value中添加数据就可能有问题。例如如下需求:

有如下值集合 [11,22,33,44,55,66,77,88,99,90],将所有大于 66 的值保存至字典的第一个key中,将小于 66 的值保存至第二个key的值中。

即: {‘k1‘: 大于66 , ‘k2‘: 小于66}

#传统实现方式

li=[11,22,33,44,55,66,77,88,99,90]
list_a=[]
list_b=[]
dic={‘k1‘:list_a,‘k2‘:list_b}
for i in li:
    if i > 66:
        dic[‘k1‘].append(i)
    else:
        dic[‘k2‘].append(i)
print dic


#用默认字典方式

import collections
#coding:utf-8
li=[11, 22, 33,44,55,66,77,88,99,90]
#用默认字典方法提前定义value的数据类型
dic=collections.defaultdict(list)
for value in li:
    if value>66:
        dic[‘k1‘].append(value)
    else:
        dic[‘k2‘].append(value)
print dic


队列

#队列分为双向队列和单向队列,所有的队列都是有进程安全的。

双向队列是队列两边都可以增减操作,是FIFO模式的

单向队列只有一边可以增减操作,所以单向队列就是个堆栈。


本文出自 “霹雳豆包” 博客,谢绝转载!

python培训Day3 随笔

标签:day3

原文地址:http://830909.blog.51cto.com/8311014/1710978

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