Python面试题之统计哈希列表中最多元素

 更新时间:2021年09月29日 10:14:09   作者:沉沉沉小姐  
这篇文章主要为大家讲解Python面试题中的如何统计哈希列表中最多的元素,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家面试成功

问题

有一个元素序列,想知道在序列中出现次数最多的元素是什么

解决方案

collections 模块中的 Counter 类转让给女士为此问题所设计的。它甚至有一个非常方便的most_common()方法可以直接告诉我们答案。

为了说明用法,假设有一个列表,列表中是一系列的单词,我们想找出哪些单词出现的最为频繁。

下面是我们的做法:

words = [
'look', 'into', 'my', 'eyes', 'look', 'into', 'my', 'eyes',
'the', 'eyes', 'the', 'eyes', 'the', 'eyes', 'not', 'around', 'the',
'eyes', "don't", 'look', 'around', 'the', 'eyes', 'look', 'into',
'my', 'eyes', "you're", 'under'
] 
from collections import Counter
word_counts = Counter(words)
top_three = word_counts.most_common(3)
print(top_three)
# Outputs [('eyes', 8), ('the', 5), ('look', 4)]

讨论可以给 Counter 对象提供任何可哈希的对象序列做为输入。在底层实现中,Counter 是一个字典,在元素和它们出现的次数间做了映射。例:

word_counter['not']
# 1
word_counter['eyes']
# 8

如果想手动增加计数,只能简单地自增即可:

morewords = ['why','are','you','not','looking','in','my','eyes']
for word in morewords:
    word_counts[word] += 1 
print(word_counts['eyes'])
# 9

另一种方法是使用update()方法:

word_counts.update(morewords)

Counter对象还可以同各种数学运算操作结合起来使用:

>>> a = Counter(words)
>>> b = Counter(morewords)
>>> a
Counter({'eyes': 8, 'the': 5, 'look': 4, 'into': 3, 'my': 3, 'around': 2,
"you're": 1, "don't": 1, 'under': 1, 'not': 1})
>>> b
Counter({'eyes': 1, 'looking': 1, 'are': 1, 'in': 1, 'not': 1, 'you': 1,
'my': 1, 'why': 1})
>>> # Combine counts
>>> c = a + b
>>> c
Counter({'eyes': 9, 'the': 5, 'look': 4, 'my': 4, 'into': 3, 'not': 2,
'around': 2, "you're": 1, "don't": 1, 'in': 1, 'why': 1,
'looking': 1, 'are': 1, 'under': 1, 'you': 1})
>>> # Subtract counts
>>> d = a - b
>>> d
Counter({'eyes': 7, 'the': 5, 'look': 4, 'into': 3, 'my': 2, 'around': 2,
"you're": 1, "don't": 1, 'under': 1})

以上就是Python面试题之统计哈希列表中最多元素的详细内容,更多关于Python哈希列表最多元素统计的资料请关注脚本之家其它相关文章!

相关文章

  • Python3.5多进程原理与用法实例分析

    Python3.5多进程原理与用法实例分析

    这篇文章主要介绍了Python3.5多进程原理与用法,结合实例形式分析了多进程的原理、单进程、多进程、进程类及进程队列等相关定义与使用技巧,需要的朋友可以参考下
    2019-04-04
  • Django实现视频播放的具体示例

    Django实现视频播放的具体示例

    本文主要介绍了Django实现视频播放的具体示例,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下<BR>
    2022-05-05
  • Centos7 Python3下安装scrapy的详细步骤

    Centos7 Python3下安装scrapy的详细步骤

    这篇文章主要介绍了Centos7 Python3下安装scrapy的详细步骤,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-03-03
  • Pycharm学习教程(2) 代码风格

    Pycharm学习教程(2) 代码风格

    这篇文章主要为大家详细介绍了最全的Pycharm学习教程第二篇代码风格,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-05-05
  • Python如何把十进制数转换成ip地址

    Python如何把十进制数转换成ip地址

    这篇文章主要介绍了Python如何把十进制数转换成ip地址,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-05-05
  • 解决pytorch rnn 变长输入序列的问题

    解决pytorch rnn 变长输入序列的问题

    这篇文章主要介绍了解决pytorch rnn 变长输入序列的问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-05-05
  • python画图时设置分辨率和画布大小的实现(plt.figure())

    python画图时设置分辨率和画布大小的实现(plt.figure())

    这篇文章主要介绍了python画图时设置分辨率和画布大小的实现(plt.figure()),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-01-01
  • Python实现批量获取当前文件夹下的文件名

    Python实现批量获取当前文件夹下的文件名

    这篇文章主要为大家详细介绍了如何利用Python实现批量获取当前文件夹下的文件名,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下
    2024-02-02
  • 一文搞懂Python中is和==的区别

    一文搞懂Python中is和==的区别

    is和==都是对对象进行比较判断作用的,但对对象比较判断的内容并不相同,下面来看看具体区别在哪?对Python中is和==的区别感兴趣的朋友跟随小编一起看看吧
    2023-01-01
  • python中线程和进程有何区别

    python中线程和进程有何区别

    在本篇文章里小编给大家整理的是一篇关于python中线程和进程的区别相关知识点,有需要的朋友们可以参考下。
    2020-06-06

最新评论