我有一个作业,需要计算出现次数最多的字符串中的特殊字符。
我的文件包含三个带有文本的段落,我需要将它们相互比较以查看一组字符出现的位置,然后计算出它们出现最多的位置。
文本中的行:
'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
不确定从何处去,任何指针将不胜感激
答案 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)