这是我的代码
a = [10,10,20]
b = [2,5,4]
print(sum(a) / sum(b))
print(sum([i/j for i,j in zip(a,b)])/3)
输出为
3.6363636363636362
4.0
我的问题是:如何正确进行第一个计算。为什么会有这样的差异?
谢谢。
答案 0 :(得分:3)
第一个是(10+10+20)/(2+5+4) = 40/11 = 3.6363
。
第二个是(10/2 + 10/5 + 20/4)/3 = (5 + 2 + 5)/3=4
这是两个不同的计算。没有理由认为应该没有任何区别。
答案 1 :(得分:0)
计算没有问题。 在第一种情况下,即
(print(sum(a)/ sum(b)))
您首先要添加分子,然后分别添加分母,然后除以它们 让[a,b,c]和[d,e,f]成为您的列表元素,在第一种情况下,您正在做
(a+b+c)/(d+e+f)
在第二种情况下,您正在做
a/d + b/e + c/f
,然后除以3 这就是为什么您会有两个不同的答案