尝试从.txt文件(python)中计算特定字符串

2021-05-13 14:39:22 发布

您现在位置:Python中文网/ 问答频道 /正文

实际上我有这样一个条目:

(observatório=astronómico, de o, universidade=de=coimbra)
(centro=de=astronomia, de o, universidade=do=porto=catarina=lobo)
(núcleo=interactivo=de=astronomia, em o,    centro=de=interpretação=ambiental=da=ponta=do=sal)
(câmara=municipal, de, cascais)
(câmara, de, nova=iorque)
(presidência, de o, pe)
(fortis, em, bruxelas)
(macquarie=futures, de o, eua)
(força=internacional=de=assistência=e=segurança, constituir o, força=de=reacção=rápida=do=comandante)
(forças=nacionais=destacadas, em o, afeganistão)
(nato, em o, afeganistão)
(nato, em o, afeganistão)

并且需要计算一个字符串重复的次数,并将其输出到另一个.txt。我是用dict写的,但是很沮丧。去掉特殊字符。在

^{pr2}$

关于如何正确地计算它,并以任何人都可以读取并知道一个字符串(由于条目格式,可以是一行)发生了多少次的方式输出它?在

1条回答
网友
1楼 ·

由于您的文本文件不包含提取单词所需的单词字符,为此,您可以使用regex,然后可以使用collections.Counter来获取包含单词频率的字典:

>>> from collections import Counter
>>> words=re.findall('\w+',s)
>>> Counter(words)
Counter({'o': 14, 'de': 12, 'em': 5, 'afeganist': 3, 'for': 3, 'do': 3, 'a': 3, 'ncia': 2, 'universidade': 2, 'mara': 2, 'astronomia': 2, 'nato': 2, 'centro': 2, 'c': 2, 'cascais': 1, 'ponta': 1, 'coimbra': 1, 'sal': 1, 'pida': 1, 'observat': 1, 'rio': 1, 'as': 1, 'catarina': 1, 'seguran': 1, 'macquarie': 1, 'nacionais': 1, 'nova': 1, 'eua': 1, 'interpreta': 1, 'internacional': 1, 'constituir': 1, 'pe': 1, 'reac': 1, 'bruxelas': 1, 'lobo': 1, 'assist': 1, 'municipal': 1, 'comandante': 1, 'da': 1, 'mico': 1, 'ambiental': 1, 'astron': 1, 'iorque': 1, 'fortis': 1, 'porto': 1, 'e': 1, 'futures': 1, 'n': 1, 'r': 1, 'interactivo': 1, 'presid': 1, 'destacadas': 1, 'cleo': 1})

\w+将匹配长度为1或更多的单词字符的任何组合!在

对于特定单词的计数,您可以使用list.count()方法:

^{pr2}$

相关问题