V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
fanqieipnet
V2EX  ›  推广

Counter 计数比 list 简化多了

  •  
  •   fanqieipnet · 2021-01-06 16:27:23 +08:00 · 777 次点击
    这是一个创建于 1420 天前的主题,其中的信息可能已经有所发展或是发生改变。
    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 次的占多数,属于长尾。
    目前尚无回复
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5398 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 108ms · UTC 05:48 · PVG 13:48 · LAX 21:48 · JFK 00:48
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.