我有一个字典公式。这是我的公式:
result = (1/1 * value1) + (1/2 * value2) + (1/3*value3) + ..N
这是我的示例词典:
StudentGrades = {0: [1, 2, 3, 4], 1: [5, 8, 10]} .
所以它应该返回{0: 4, 1: 12.33}
。
这是我的代码
avgDict = {}
x = 1
for k,v in StudentGrades.items():
avgDict[k] = float(sum(1 / x * v))
x += 1
我的实际代码返回{0: 10.0, 1: 0.0}
。
那么请你能解决这个问题吗?
答案 0 :(得分:0)
numpy
为此提供了解决方案:
import numpy as np
StudentGrades = {0: [1, 2, 3, 4], 1: [5, 8, 10]}
Result = {k: np.dot(v, [1/i for i in range(1, len(v)+1)])\
for k, v in StudentGrades.items()}
# {0: 4.0, 1: 12.333333333333332}