Python 正在尝试创建字典,但得到TypeError:';int';对象是不可编辑的
也许这是一个愚蠢的问题,但我对Python非常陌生。我正在努力创建单字词典,并计算词典中每个单字的概率。 这是我的密码Python 正在尝试创建字典,但得到TypeError:';int';对象是不可编辑的,python,object,dictionary,iterable,Python,Object,Dictionary,Iterable,也许这是一个愚蠢的问题,但我对Python非常陌生。我正在努力创建单字词典,并计算词典中每个单字的概率。 这是我的密码 filename = 'doyle-27.txt' word_dict= {} with open (filename, "r") as fp: for line in fp: words = line.split() for word in words: word = word.lower
filename = 'doyle-27.txt'
word_dict= {}
with open (filename, "r") as fp:
for line in fp:
words = line.split()
for word in words:
word = word.lower
if not word in word_dict:
word_dict[word] =1
else:
word_dict[word]+=1
for word in word_dict:
prob =0
prob = word_dict[word]/sum( word_dict[word])
print(prob)
这里我得到的是一个错误,int对象是不可编辑的。也许有人能帮我修一下。坦克斯 请粘贴输入数据并完成回溯。仅供参考:
for word in words:word=word。lower
没有做您认为它做的事情。sum(word\u dict[word])
可能是您的问题所在word\u dict[word]
返回一个整数对象,但sum()
需要一个iterable。你到底想在这里做什么?你的代码中有很多错误。首先,word=word.lower
应该是word=word.lower()
,否则您将把函数word.lower
分配给word
。然而,这个循环不会做您希望它做的事情,也就是降低列表中每个单词的大小写。分配给word
时,它不会影响列表中的项目,只会重新分配名称word
My bad。确定它是word=word.lower()。