美文网首页我爱编程
Python进阶话题杂谈(十一)collections模块最实用

Python进阶话题杂谈(十一)collections模块最实用

作者: 樱雨楼 | 来源:发表于2018-06-21 21:36 被阅读0次

    collections是Python的一个包含了计数器、队列、命名元组、有序字典等高级数据结构的模块。本文只讨论此模块最常用的Counter接口。

    Counter用于对一个可迭代对象中的所有元素进行出现次数计数。如果不使用此接口,这样的功能可以通过哈希表实现:

    numList = [1, 1, 1, 2, 2, 3]

    counterDict = {}

    for i in numList:

       if i in counterDict:

           counterDict[i] += 1

       else:

           counterDict[i] = 1

    Counter的返回值是一个继承自dict的数据结构,故针对字典的操作也适用于Counter。Counter接受一个可迭代对象,返回一个Counter对象。此对象最主要的方法是most_common,此方法可以接受一个可选的数字N作为参数,按从大到小的顺序返回前N个出现次数最多的元素及其出现次数,而如果不给出参数,则按从大到小的顺序返回所有元素及其出现次数。most_common的返回值类似于zip,为一个由多个双元素元组构成的list,可直接用于并行迭代。下例即为使用Counter对list元素进行计数的例子:

    import collections

    numList = [1, 1, 1, 2, 2, 3]

    for i, j incollections.Counter(numList).most_common():

       print(i, j)

    2018年6月于苏州

    相关文章

      网友评论

        本文标题:Python进阶话题杂谈(十一)collections模块最实用

        本文链接:https://www.haomeiwen.com/subject/nyzcyftx.html