【发布时间】:2022-12-12 05:05:20
【问题描述】:
我需要编写一个程序,提示输入文本文件的名称,并打印具有最大和最小频率的单词,以及它们的频率(以空格分隔)。
这是我的文字
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
然后我想遍历键和值并找出哪个是最大频率和最小频率但是到目前为止我的控制台说
类型错误:列表索引必须是整数或切片,而不是列表
我也不知道那是什么意思。
对于这个问题,预期的结果是:
Max frequency: i 5 Min frequency: you 1
【问题讨论】:
-
line.split(' ')返回一个列表,意思是x是一个列表。另请注意,dict1实际上也不是dict。尝试打印出您的变量作为调试的一种方式。在这个站点上也有数百个关于这个任务的问题,已经有很多很好的答案。 -
抱歉,dict1 应该是 dict1 = {}
-
我见过类似的问题,但我找不到任何适用于最大和最小频率的问题
标签: python-3.x list loops text-files