我需要编写一个程序,提示输入文本文件的名称,并打印频率最高和最低的单词,沿着它们的频率(用空格分隔)。
这是我的短信
I am Sam
Sam I am
That Sam-I-am
That Sam-I-am
I do not like
that Sam-I-am
Do you like
green eggs and ham
I do not like them
Sam-I-am
I do not like
green eggs and ham
代码:
file = open(fname,'r')
dict1 = []
for line in file:
line = line.lower()
x = line.split(' ')
if x in dict1:
dict1[x] += 1
else:
dict1[x] = 1
然后,我想迭代键和值,并找出最大和最小频率,但到目前为止,我的控制台说
TypeError:列表索引必须是整数或切片,而不是列表
我也不知道那是什么意思。
对于此问题,预期结果为:
Max frequency: i 5
Min frequency: you 1
1条答案
按热度按时间bvn4nwqk1#
您正在使用列表而不是字典来存储词频。您不能像这样使用列表来存储键值对,您需要使用字典来代替。下面是如何修改代码以使用字典来存储词频:
然后迭代键并找到最小和最大频率
打印结果