Counter 计数比 list 简化多了

2021-01-06 16:27:23 +08:00
 fanqieipnet
Counter 计数比 list 简化多了,为什么呢?今天番茄加速就来解析一下。

   Counter 正如名字那样,它的主要功能就是计数。这听起来简单,但是我们在分析数据时,基本都会涉及计数,真的家常便饭。

  习惯使用 list 的看过来,有一些数值已经放在一个 list 中:

   skuPurchaseCount = [3, 8, 3, 10, 3, 3, 1, 3, 7, 6, 1, 2, 7, 0, 7, 9, 1, 5, 1, 0]

   In [33]: for i in skuPurchaseCount:

  ...: if countdict.get(i) is None:

  ...: countdict[i]=1

  ...: else:

  ...: countdict[i]+=1

   In [34]: countdict

   Out[34]: {3: 5, 8: 1, 10: 1, 1: 4, 7: 3, 6: 1, 2: 1, 0: 2, 9: 1, 5: 1}

  如果使用 Counter,我们可以写出更简化的代码:

   In [35]: from collections import Counter

   In [42]: Counter(skuPurchaseCount).most_common()

   Out[42]:

  [(3, 5),(1, 4),(7, 3),(0, 2),(8, 1),(10, 1),(6, 1),(2, 1),(9, 1),(5, 1)]

  仅仅一行代码,我们便输出统计计数结果,并且是一个按照次数统计出来的由大到小排序好的 tuples 列表,因此我们很快就会看到,购买 3 次是出现最多的,一共 5 次。

  购买为 1 次的占多数,属于长尾。
741 次点击
所在节点    推广
0 条回复

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/742249

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX