python的collections.Counter方法

2022年7月17日12:17:14

哈希表在python中可以用collections.Counter计数来体现。
该方法用于统计某序列中每个元素出现的次数,以键值对的方式存在字典中。但类型其实是Counter

nums=[1,2,3,1,2,1]
counts= collections.Counter(nums)print(counts)## Counter({1: 3, 2: 2, 3: 1})

凭借这个结构,可以计算出某个序列中出现次数最多的某个元素。也即在得到了counts之后求max即可。但这个max需要给依据索引。

print(max(counts))# 3,这里只是求得最大的键值print(max(counts.keys(), key=counts.get))# 1,这里是按照key方法求最大

这里max是两个参数,前一个代表要max的是什么,也就是要返回最大键,后面的key代表要返回的最大的依据是什么,默认是本身,但这里给了key方法,count.get也就是求值,所以该方法就是说返回一个最大键,但这个最大的依据是值。如果某个键值对的值是最大的,那就返回其键。

dic=dict(counts)print(dic.get(1))# 4 get在字典中就是传一个键,根据键求对应的值。

前面是一种理解,但max的两个参数也可以理解为key后面的方法是要将前面的第一个参数作为参数,也就是counts.keys()要作为counts.get的参数,然后求max。即get键对应的值,然后返回最大的值对应的键
(感觉python中存在很多这种情况,比如lambda表达式,后面也是传一个func来将前面的参数带入)

  • 作者:Wayback_
  • 原文链接:https://blog.csdn.net/m0_47105444/article/details/113867636
    更新时间:2022年7月17日12:17:14 ,共 681 字。