【发布时间】:2022-01-03 10:35:30
【问题描述】:
所以我编写了这段代码,它接收一个文件filename: str,并以“+”的形式返回字符串中每个字母存在的次数。这是我的代码
def letterhelper(filename):
r = list(filename)
c_r = set(r)
c_r.remove(' ')
c_r.remove(',')
c_r.remove('.')
c_r.remove('\n')
f = []
for x in c_r:
f.append([-r.count(x), x])
return f
def charHistogram(data: str):
r = open(filename)
q = r.read()
g = letterhelper(str.lower(q))
for t in sorted(g):
print(t[1], (-t[0]) * '+')
数据是一个单独的文件,将由函数letterhelper()打开
数据可能包含的样本输入是...
“我的兄弟姐妹给我压力”
所以问题是,当data 是
Lorem ipsum dolor sit amet, consectetur adipiscing
elit. Praesent ac sem lorem. Integer elementum
ultrices purus, sit amet malesuada tortor
pharetra ac. Vestibulum sapien nibh, dapibus
nec bibendum sit amet, sodales id justo.
函数正确返回
e ++++++++++++++++++++++++
t ++++++++++++++++++
s +++++++++++++++++
i ++++++++++++++++
a +++++++++++++++
m ++++++++++++
r ++++++++++++
u ++++++++++++
l +++++++++
n +++++++++
o +++++++++
c +++++++
d +++++++
p +++++++
b +++++
g ++
h ++
j +
v +
None
但如果data = Someday Imma be greater than the rest
输出是
c_r.remove(',')
KeyError: ','
我应该进行哪些更改,以便我的代码正确返回一个直方图,例如当data 是“Lorem ipsum .....”时提供的所有字符串输入??
【问题讨论】: