Python-Collections学习

2018-07-13  本文已影响0人  进击的STE

Collections



用法

  1. Counter
  1. OrderDict

    • 有序字典,数据结构字典Dict是无序的,有时使用起来不方便,Collections里提供一个有序字典:dict的方法ORderDict基本都可以使用,比如keys,values,clear

        #创建一个有序字典
        dic = collections.OrderedDict()
        dic['name'] = 'winter'
        dic['age'] = 18
        dic['gender'] = 'male'
        
        print(dic)                         #结果OrderedDict([('name', 'winter'), ('age', 18), ('gender', 'male')])
        
        #将一个键值对放入最后
        dic.move_to_end('name')
        print(dic)                         #结果OrderedDict([('age', 18), ('gender', 'male'), ('name', 'winter')])
      
  2. defaultdict

    • 默认字典,为字典设置一个默认类型,很有用。

        #传统方法
        people = [['male', 'winter'], ['female', 'elly'], ['male', 'frank'], ['female', 'emma']]
        #将男性女性分开,所有男性放到'male'中,所有女性放放到'female'中
        gender_sort = {}
      
        for info in people:
            if info[0] in gender_sort:
                gender_sort[info[0]].append(info[1])
            else:
                gender_sort[info[0]] = [info[1]]
        
        print(gender_sort)                              #结果{'male': ['winter', 'frank'], 'female': ['elly', 'emma']}
      
        #使用defaultdict简单很多
        people = [['male', 'winter'], ['female', 'elly'], ['male', 'frank'], ['female', 'emma']]
      
        gender_sort = collections.defaultdict(list)
        for info in people:
            gender_sort[info[0]].append(info[1])
        
        print(gender_sort)      #结果defaultdict(<class 'list'>, {'male': ['winter', 'frank'], 'female': ['elly', 'emma']})
      
  3. namedtuple

  1. deque
上一篇下一篇

猜你喜欢

热点阅读