什么是collections
collections是python的一个标准库
import collections
collections中有很多很牛逼的函数:
1/计数器(Counter)
2/双向队列(deque)
3/默认字典(defaultdict)
4/有序字典(OrderedDict)
5/可命名元组(namedtuple)
1/Counter()
#主要功能:对一个可迭代序列进行元素的计数
#返回一个字典,键为元素名称,值为元素个数
from collections
temp_str="gjadjgatugajdgjad"
temp_list = [1,4,5,8,59,6,5,2]
temp_str_dict = collections.Counter( temp_str )
temp_list_dict = collections.Counter( temp_list )
# 对于temp_str_dict和temp_list_dict这样的字典对象(也可以理解为是Counter对象),
# 有以下一些api可以使用:
# obj.most_common(int) # 按照元素出现的次数从高到低排序,返回前int个元素的字典,相当于截取字典
# elements:返回经过计数器Counter后的元素,返回的是一个迭代器
# iteritems:返回由Counter计数器生成的字典的所有item
# iterkeys:返回由Counter计数器生成的字典的所有key
# itervalues:返回由Counter计数器生成的字典的所有value
2/deque
#deque是队列数据结构。
#deque属于高性能的数据结构之一,常用方法如下:
#append: 在队列右边添加元素
#appendleft:在队列左边添加元素
#clear: 晴空队列中的所有元素
#count: 返回队列中元素的个数
#extend: 在队列右边扩展,可以是列表,元组,字典,如果是字段,则将字典的key加入到deque
#extendleft: 同extend,在左边扩展
import collections
# 定义一个队列对象
d = collections.deque( [1,2,3] ) # 定义一个队列对象
d.extendleft( ['a','b','c'] )
print(d)
#deque(['c', 'b', 'a', 1, 2, 3])
# 对于一个队列对象,有以下方法可以使用:
#pop: 移除并返回对列的右边的元素
#popleft: 移除并返回队列左边的元素
#remove(value): 移除队列中第一个出现的value
#reverse: 对列的所有元素进行反转
#roteate(n): 对队列数进行移动
3/defaultdict
定义一个defaultdict
import colections
dict_obj = colections.defaultdict() # 产生一个对象
dict_obj[k1].update( new_value ) # 更新对象中的某个key
默认字典,字典的一个子类,继承所有字典的方法,默认字典在进行定义初始化的时候得指定字典值有默认类型
4/OrderedDict
和defaultdict一样,有序字典也是字典的一个子类。
import collections
# 定义一个有序字典
hz_dict = collections.OrderedDict()
5/namedtuple
namedtuple由自己的类工厂namedtuple()进行创建,而不是由表中的元组进行初始化,通过namedtuple创建类的参数包括类名称和一个包含元素名称的字符串