我有一个包含波斯语句子的文件,然后是一个标签,一个波斯语单词,一个标签,然后是每一行中的英文单词。我还有一个包含键和浮点值的字典。我必须在字典中的每一行中找到该文件的单词。然后返回他们的价值观。然后我必须计算每个单词的对数,最后分别计算每一行的总和。问题是,当我想计算总和时,会发生以下错误:TypeError:' float'对象不可迭代。我该如何解决?
import math
probabilities = {"شور": 0.02, "نمک": 0.05,"زندگی": 0.07, "غذاهای": 0.01, "غذای": 0.05}
filename = "F.txt"
for line in open(filename, encoding="utf-8"):
list_line = line.split("\t")
words = list_line[0].split()
for key, value in probabilities.items():
for word in words:
if word == key:
result = sum(float(math.log(value)))
print(word, result, end=" ")
print()
当我运行它时,会出现此错误:
Traceback (most recent call last):
File "C:\example.py", line 14, in <module>
result = sum(float(math.log(value)))
TypeError: 'float' object is not iterable
F.txt([https://www.dropbox.com/s/ag5at9iuuln2x02/F.txt?dl=0):
شور ورود دانشگاه جالب توجه شور passion
۱۳ راهکار شور اشتیاق واقعی زندگی شور passion
نمک موجود ذائقه غذاهای شور عادت شور salty
از مضرات نمک غذای شور بدانید شور salty
我必须分别计算每一行的总和,最后每行只有一个数字。
答案 0 :(得分:1)
您的代码确实非常错误(您可以跳到第4点):
result += float(math.log(value))
,(init result
在循环之外为0)sum
用于迭代。