在我出现次数最多的地方找到特殊字符

时间:2018-10-30 11:06:01

标签: python split

我有一个作业,需要计算出现次数最多的字符串中的特殊字符。

我的文件包含三个带有文本的段落,我需要将它们相互比较以查看一组字符出现的位置,然后计算出它们出现最多的位置。

文本中的行: 'I cannot go now. Give me lunch first at 12:15.'

After 13:100, he took a nap for until 13:15. Then in the late afternoon on 2018-11:30 at 16:30, he picked some bags and went to the palace. On the way, he felt hot so he sat under a tree to rest. Then, two hours later at 18:30, he got up to go but saw a man showing some magic tricks. He stopped to watch for an until 21:04.

When he reached the palace it was already after 21:03. The palace gates had been shut. So Haria had lost a golden chance because he had not learned the value of time on the 2018-13-01, a beautiful day.

我到目前为止的代码:

number_of_specials = 0
c = ['.', '.', ';', ':', '!', '?']
top = []
top_c1 = 0
top_c2 = 0
top_c3 = 0

with open(TEXT, "r") as fh:
    for line in fh:
        top.append(line.split("\n")) //to get the lines

if c in top[0]:
    top_c1 += 1

不确定从何处去,任何指针将不胜感激

2 个答案:

答案 0 :(得分:1)

尝试一下:

import re
c = ['.', '.', ';', ':', '!', '?']
top = ['asdd..,;;.:']
top_len = len(re.findall('['+''.join(c)+']',top[0]))

答案 1 :(得分:0)

您可以将行和出现的次数存储在元组中,并根据字符串(行)中特定字符的数量来增加出现的值。

class Counter(object): # mutable object is needed to access it from tuple
    def __init__(self, start_value=0):
        self.value = start_value

    def __str__(self):
        return str(self.value)

c = ['.', '.', ';', ':', '!', '?']
top = []

with open(TEXT, "r") as fh:
    for line in fh:
        top.append((line.split("\n"), Counter(0)))

for line, occurrences in top:
    for character in c:
        occurrences.value += line.count(character)