这两个公式之间的差异

时间:2016-11-20 01:34:59

标签: python python-2.7

用于计算平均值/平均值;

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

我之前遇到过第二个,但就我所知,他们做了同样的事情。任何人都可以解释这种差异吗?

1 个答案:

答案 0 :(得分:2)

使用最后一个表达式以避免除以0。假设j是一个列表,如果数组为空,如果0/0自己使用len(j),则会得到ZeroDivisionError表达式,这将导致>>> 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

max(len(j),1)

>>> sum(j) / max(len(j), 1) 0.0 将确保除数永远不会为0并且不会引发错误:

new HashMap<>(capacity);