我正在尝试创建一个函数来打印频率高于阈值的字符数。。。(n需要是一个非负数)
import urllib
txt = urllib.urlopen("http://students.informatics.unimelb.edu.au/~ivow/info1dev/mywork/info1media/data/moby.txt").read()
tally = {}
for char in txt:
if char in tally:
tally[char] += 1
else:
tally[char] = 1
char = 'b'
def freq_threshold(n):
if tally[char] > n:
return tally[char]
freq_threshold(3)
我希望我的函数返回char在文本中出现的次数的计数,只有当计数大于我的freq\u阈值(n)时。目前,它什么也不返回。。你知道吗
函数不返回任何内容,因为
b
的计数小于阈值。在这种情况下,它将默认返回None
。无论如何,您需要像这样打印返回值但是,如果要显示计数大于阈值的所有字符,则需要像这样迭代字典
这将打印计数大于3的所有字符以及实际计数本身。你知道吗
无论如何,解决问题的更好方法是使用
collections.Counter
并接受要检查的字符的计数和参数,如下所示注意:您需要指定在
urlopen
调用中使用的协议。你知道吗相关问题 更多 >
编程相关推荐