如何在python 3中用所有字母(az)创建txt频率计数器

adda字体

我有一个名为textf的文本文件,看起来类似于以下内容:

rxgmgcwbd c qcyurr bkxgmq, lwrg grru rrwxtam rwgzwt am quyam cv avrrgdwkxgcr.iwxbdamcz xdalguj qarc ram av vcmfwgmgum. yw'g

我想对文本文件中的每个字母进行频率计数,但我希望这样做的条件是,如果文本中未出现字母,则该字母应具有值为0的key:value对。例如,如果z不是在文本中,所有字母(a到z)的外观应类似于“ z”:0,依此类推。我做了以下代码:

import string  
from collections import Counter 
with open("textf.txt") as tf: 
    letter = tf.read()
letter_count = Counter(letter.translate(str.maketrans('','',string.punctuation)))
print("Frequency count of letter:","\n",letter_count)

但是输出看起来像这样:

Counter({' ': 110, 'r': 12, 'c': 88, 'a': 55, 'g': 57, 'w': 76, 'm': 76, 'x': 72, 'u': 70, 'q': 41, 'y': 40, 'j': 36, 'l': 32, 'b': 18, 'd': 28, 'v': 27, 'k': 22, 't': 19, 'f': 18, 'z': 16, 'i': 7})

我正在尝试这样做,以便' ': 110不显示空格计数,并且我拥有所有字母(az),并且当字母未出现在文本中时,我的结果将显示类似的'n': 0内容。关于如何使之成为可能的任何想法或建议?

2号环

一种方法是使用小写字母作为新字典的键,从计数器中制作普通字典。我们使用该dict.get方法为缺少的字母提供默认值零。

import string  
from collections import Counter 

letter = "rxgmgcwbd c qcyurr bkxgmq, lwrg grru rrwxtam rwgzwt am quyam cv avrrgdwkxgcr.iwxbdamcz xdalguj qarc ram av vcmfwgmgum. yw'g"

letter_count = Counter(letter.translate(str.maketrans('','',string.punctuation)))
letter_count = {k: letter_count.get(k, 0) for k in string.ascii_lowercase}
print("Frequency count of letter:\n", letter_count)

输出

Frequency count of letter:
 {'a': 9, 'b': 3, 'c': 8, 'd': 4, 'e': 0, 'f': 1, 'g': 12, 'h': 0, 'i': 1, 'j': 1, 'k': 2, 'l': 2, 'm': 10, 'n': 0, 'o': 0, 'p': 0, 'q': 4, 'r': 14, 's': 0, 't': 2, 'u': 5, 'v': 4, 'w': 9, 'x': 6, 'y': 3, 'z': 2}

如果在Python 3.6及更高版本中执行此操作,则将获得新的dict按字母顺序排序的附带好处(尽管当前的行为只是不应该依赖的实现细节)。


正如user2357112在注释中提到的,我们不需要使用letter_count.get(k, 0),因为如果我们尝试读取不存在的键的值,则Counter会自动返回零。这样可以将dict理解更改为

letter_count = {k: letter_count[k] for k in string.ascii_lowercase}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在Spark / Scala中从具有频率计数的文本文件创建双字母组?

如何实现字长频率计数器

Python:如何为所有变量生成频率计数

如何使用lodash从对象数组中创建具有名称和频率计数的对象

按频率对计数器排序,然后在Python中按字母顺序排序

如何在python中实现静态计数器

如何在 Python 中重置计数器

如何创建一个计数器作为组件多次使用并创建一个按钮来重置 React JS 中的所有计数器?

如何在python中创建线程安全的全局计数器

Python中的项目频率计数

python中的计数器未显示所有单词

如何在Excel中为群组创建计数器?

如何在人脸检测中创建计数器?

如何在C中创建尝试计数器?

如何在 HTML/CSS 中创建计数器

如何在Python中同时运行3个计数器?

如何在某个特定频率上找到 Python 计数器列表的元素

如何在Java中创建没有哈希图或数组的字频计数器?

如何在另一个有状态操作中创建本地计数器

如何在python 3中用'->'分隔单词列表

我如何在xquery中拥有计数器?

如何从具有频率计数的值创建数据框列?

如何在pyspark的高基数分类列中以低频率计数有效地分组级别?

如何在Python中的字母上创建循环迭代器?

频率计数器

Python Pandas Dataframe:用频率计数替换变量

如何在新的月份使用 Python 重置计数器

如何在mvc中的所有站点上添加带有行编号的计数器

如何在列表中的句子列表中找到每个单词的引理和频率计数?