哈希表在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来将前面的参数带入)

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐