用于计算平均值/平均值;
sum(j) / len(j)
sum(j) / max(len(j), 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);