Python 错误<;生成器对象获得平均额定值。<;本地人>&书信电报;genexpr>;在0x000000000156F728处>;
正在尝试打印此操作的结果Python 错误<;生成器对象获得平均额定值。<;本地人>&书信电报;genexpr>;在0x000000000156F728处>;,python,python-3.x,Python,Python 3.x,正在尝试打印此操作的结果 average1 = 3.82 average2 = 3.98 short_rating1 = [3.5, 4.5, 4.0, 3.5, 4.0, 4.5, 3.5, 4.0, 2.0, 4.0, 3.0, 5.0, 4.5, 4.5, 3.0, 3.5, 4.0, 4.5, 2.0, 5.0, 3.0, 4.0, 3.0, 4.0, 5.0] short_rating2 = [3.5, 4.5, 5.0, 4.5, 5.0, 3.5, 4.0, 4.5, 3.
average1 = 3.82
average2 = 3.98
short_rating1 = [3.5, 4.5, 4.0, 3.5, 4.0, 4.5, 3.5, 4.0, 2.0, 4.0, 3.0, 5.0, 4.5, 4.5, 3.0, 3.5, 4.0, 4.5, 2.0, 5.0, 3.0, 4.0, 3.0, 4.0, 5.0]
short_rating2 = [3.5, 4.5, 5.0, 4.5, 5.0, 3.5, 4.0, 4.5, 3.5, 4.5, 3.0, 3.5, 3.0, 5.0, 4.0, 4.5, 4.0, 4.0, 3.0, 3.5, 4.0, 4.0, 4.0, 4.5, 3.0]
denominator = (math.sqrt(sum((a - average1) ** 2)) * math.sqrt(sum(((b - average2) ** 2))) for a, b in zip(short_rating1, short_rating2))
print(denominator)
sum((a-平均值1)**2)
和sum((b-平均值2)**2))
是你的问题sum
是一个函数,它接受一个iterable并对其元素求和<代码>(a-平均值1)**2是一个浮点数,因此您会得到一个错误。删除sum
调用
denominator = (math.sqrt((a - average1) ** 2) * math.sqrt((b - average2) ** 2) for a, b in zip(short_rating1, short_rating2))
list(denominator)
# [0.15359999999999993, 0.3536000000000001, 0.18360000000000018, 0.1663999999999999, 0.18360000000000018, 0.3264000000000001, 0.006400000000000003, 0.09360000000000009, 0.8735999999999999, 0.09360000000000009, 0.8035999999999999, 0.5664, 0.6664000000000001, 0.6936000000000002, 0.016400000000000012, 0.1663999999999999, 0.0036000000000000064, 0.013600000000000015, 1.7835999999999999, 0.5664, 0.016400000000000012, 0.0036000000000000064, 0.016400000000000012, 0.09360000000000009, 1.1564]
您将函数包装在parenths中,这将生成一个不是错误的生成器;这正是你要求的。它正在打印
分母
的值,这是一个生成器
对象。您需要生成器生成的值列表<代码>值=列表(分母)。类型错误:“float”对象不可用iterable@sayaton您的代码至少有4个值未定义;如果没有一个完整的例子,我们不可能说出这段代码在做什么。average1=3.82 average2=3.98 short_rating1=[3.5,4.0,4.0,3.5,4.0,4.5,3.5,4.0,2.0,4.0,3.0,3.5,4.5,3.0,4.0,4.5,2.0,5.0,5.0,3.0,3.0]short_rating2=[3.5, 4.5, 5.0, 4.5, 5.0, 3.5, 4.0, 4.5, 3.5, 4.5, 3.0, 3.5, 3.0, 5.0, 4.0, 4.5, 4.0, 4.0, 3.0, 3.5, 4.0, 4.0, 4.0, 4.5, 3.0]