当前位置: 首页 > 面试题库 >

Python中的项目频率计数

诸超
2023-03-14
问题内容

假设我有一个单词列表,并且我想查找每个单词出现在该列表中的次数。

一个明显的方法是:

words = "apple banana apple strawberry banana lemon"
uniques = set(words.split())
freqs = [(item, words.split().count(item)) for item in uniques]
print(freqs)

但是我发现这段代码不是很好,因为该程序在单词列表中运行两次,一次构建集合,第二次计算出现次数。

当然,我可以编写一个函数来遍历列表并进行计数,但是那不是Pythonic。那么,有没有更有效和Pythonic的方法呢?


问题答案:

Counter类中collections模块是专为解决这类问题的目的:

from collections import Counter
words = "apple banana apple strawberry banana lemon"
Counter(words.split())
# Counter({'apple': 2, 'banana': 2, 'strawberry': 1, 'lemon': 1})


 类似资料:
  • 问题内容: 我正在编写代码来分析语音所唱的单个音频。我需要一种方法来分析音符的频率。当前,我正在使用PyAudio录制音频文件,该文件存储为,然后立即播放。 问题出在while循环上。由于某种原因,该条件永远不会成立。我打印了两个值(len(data)和(chunk * swidth)),它们分别是8192和4096。然后,我尝试在while循环中使用2 * chunk * swidth,这引发了

  • 问题内容: 我对Python pandas的ivot_table还是很陌生,想问一种对一列中的值的频率进行计数的方法,该列也链接到另一列ID。DataFrame如下所示。 对于输出,我想获得如下内容: 到目前为止,我尝试了以下代码: 这段代码给了我两个相同的东西。上面的代码有什么问题?我问这个问题的部分原因是该DataFrame只是一个示例。我正在处理的真实数据有数万个account_number

  • 问题内容: 我有以下代码。我知道我可以使用函数过滤掉少于频率计数的搭配。但是,在决定设置过滤频率之前,我不知道如何获取文档中所有n- gram元组(在我的情况下为bi-gram)的频率。如您所见,我正在使用nltk搭配类。 问题答案: 该功能有效

  • 问题内容: 我有一个3列和数千行的表,前2列有数据。第三列当前为空,我需要根据第一列和第二列中已有的数据填充第三列。 假设我在第一栏中有状态,在第二栏中有水果条目。我需要编写一条SQL语句来计算 每种水果来自的不同状态数 ,然后将此流行度数字插入到每一行的第三列中。该行中的受欢迎程度数字1表示水果仅来自一个州,受欢迎程度数字4表示该水果来自4个州。所以我的桌子目前是这样的: 我需要弄清楚如何计算然

  • 问题内容: 这个问题已经在这里有了答案 : 有效地计算python中的单词频率 (8个答案) 4年前关闭。 我想知道是否有一种方法可以计算2D python列表中的元素频率。对于一维列表,我们可以使用 但是,如果我有一个清单: 我可以在此2D列表中找到每个单词的频率吗? 问题答案: 假设我了解你想要什么, 要么,

  • 问题内容: 我需要找到列表中元素的频率 输出 我也想从中删除重复项 问题答案: 由于列表是有序的,你可以执行以下操作: 输出: