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

在python中计算唯一单词

邴越彬
2023-03-14
问题内容

到目前为止,我的代码是这样的:

from glob import glob
pattern = "D:\\report\\shakeall\\*.txt"
filelist = glob(pattern)
def countwords(fp):
    with open(fp) as fh:
        return len(fh.read().split())
print "There are" ,sum(map(countwords, filelist)), "words in the files. " "From directory",pattern

我想添加一个代码,该代码可以计算来自模式(此路径中的42个txt文件)中的唯一单词,但我不知道该怎么做。有谁能够帮助我?


问题答案:

在Python中计算对象的最佳方法是使用collections.Counter为此目的而创建的类。它的行为类似于Python字典,但计数时使用起来稍微容易一些。您只需传递对象列表,它就会自动为您计数。

>>> from collections import Counter
>>> c = Counter(['hello', 'hello', 1])
>>> print c
Counter({'hello': 2, 1: 1})

Counter也有一些有用的方法,例如most_common,请访问文档以了解更多信息。

Counter类也可能非常有用的一种方法是update方法。通过传递对象列表实例化Counter后,可以使用update方法执行相同的操作,它将继续计数而不会删除对象的旧计数器:

>>> from collections import Counter
>>> c = Counter(['hello', 'hello', 1])
>>> print c
Counter({'hello': 2, 1: 1})
>>> c.update(['hello'])
>>> print c
Counter({'hello': 3, 1: 1})


 类似资料:
  • 问题内容: 我已经在处理以下代码,但是似乎找不到一种方法来计算字谜列表中唯一值的数量。如果我只是打印出:我会得到列表的总价值,但其中包括重复项。 我试图将列表转换为集合,然后再删除掉重复项,但是还没有任何运气。 谢谢! 问题答案: 使用。仅包含唯一值:

  • 我正在运行一个Python代码,它读取一个URL列表,并用urlopen单独打开其中的每一个。列表中重复了一些URL。该列表的一个示例如下: www.example.com/page1 www.example.com/page1 www.example.com/page2 www.example.com/page2 www.example.com/page2 www.example.com/pag

  • 问题内容: 这是我的数据 是独特的。我需要显示每张卡的所有详细信息和总时间,例如: 问题答案: SELECT卡号,用户名,表名,总和(小时)从表_1 GROUP BY卡号,用户名,表名开​​始

  • 我正在尝试计算列表/集合(或其名称)中的唯一单词,看起来像这样: (如果你需要知道,这个列表是由一个匹配函数形成的,该函数在我电脑上的目录中的word文档中查找名称列表。您看到的空空间是与任何内容都不匹配的文档) 到目前为止我已经试过了 和 但两者都不起作用。谢谢你的帮助

  • 问题内容: 我想获得Windows和Linux上使用Python的计算机唯一的ID。可能是CPU ID,主板序列号或其他。 我看了几个运气不好的模块(pycpuid,psi,…)。 关于如何做到这一点的任何想法? 问题答案: 如何使用MAC地址作为唯一ID? 此处的讨论使用Python从设备获取MAC地址显示了如何获取MAC地址

  • 问题内容: 如果我有三列: 我想计算一下表格中有多少唯一的电子邮件,我该怎么做? 如下语句: 给我总数。 我试过了 但这似乎并没有给我期望的数字。 问题答案: 采用 提供唯一的电子邮件ID,然后简单地对其进行计数。