python:collections标准库

246 阅读2分钟

什么是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创建类的参数包括类名称和一个包含元素名称的字符串