len()
和sum()
提供了两种简单的归约方法:计算序列中所有值的个数和汇总值。这两个函数在数学上相近,但在Python中的实现方法却有很大差别。
从数学角度看,这两个函数的高度相似性体现在:len()
函数把序列中每个元素看作1,然后返回汇总值:
sum()
函数则取序列中每个元素的实际值,然后返回汇总值:
sum()
函数可用于任何可迭代对象,len()
函数不能用于可迭代对象,只能用于序列。这种实现方法上的不对等导致在某些情况下,开发统计算法会遇到一些小麻烦。
对于空序列,两个函数都返回加法单位元0。
>>> sum(())
0
虽然sum(())
返回整数0,但在计算其他类型的数值时,整数0将被强制转换为与输入数据匹配的类型。