Python 这两个公式的区别

Python 这两个公式的区别,python,python-2.7,Python,Python 2.7,用于计算平均值/平均值 sum(j) / len(j) sum(j) / max(len(j), 1) 我之前遇到过第二个,但据我所知,他们做的事情是一样的。如果有区别,有人能解释一下吗 使用最后一个表达式是为了避免除以0。假设j是一个列表,如果数组为空,那么如果单独使用len(j),将得到一个0/0表达式,这将导致zeroditionerror >>> j = [] >>> sum(j) / len(j) ZeroDivisionErrorTracebac

用于计算平均值/平均值

sum(j) / len(j)
sum(j) / max(len(j), 1)

我之前遇到过第二个,但据我所知,他们做的事情是一样的。如果有区别,有人能解释一下吗

使用最后一个表达式是为了避免除以
0
。假设j是一个列表,如果数组为空,那么如果单独使用
len(j)
,将得到一个
0/0
表达式,这将导致
zeroditionerror

>>> j = []
>>> sum(j) / len(j)
ZeroDivisionErrorTraceback (most recent call last)
<ipython-input-119-2bf5531faf2b> in <module>()
----> 1 sum(j) / len(j)

ZeroDivisionError: division by zero

最后一个表达式用于避免除以
0
。假设j是一个列表,如果数组为空,那么如果单独使用
len(j)
,将得到一个
0/0
表达式,这将导致
zeroditionerror

>>> j = []
>>> sum(j) / len(j)
ZeroDivisionErrorTraceback (most recent call last)
<ipython-input-119-2bf5531faf2b> in <module>()
----> 1 sum(j) / len(j)

ZeroDivisionError: division by zero

哦,好吧,我认为这是有道理的。非常感谢。事实上,看了以后,我不完全明白你的意思。除数怎么可能是0?如果数组是空的,len(j)=0,这导致sum(j)也为0。如果数组j是空的,max(len(j,1)=>max(0,1)=1,sum(0)/1=>0/1=0抱歉,如果我的答案有点难理解。我对这一点很陌生:)哦,好的,我认为这是有意义的。非常感谢。事实上,看了以后,我不完全明白你的意思。除数怎么可能是0?如果数组是空的,len(j)=0,这导致sum(j)也为0。如果数组j是空的,max(len(j,1)=>max(0,1)=1,sum(0)/1=>0/1=0抱歉,我的答案有点难理解。我对这一点很陌生:)