python列表求和的几种等效方法

求1-100所有数的和:

方法一:用到python自带的sum函数

L= range(1,101)
print(sum(L)) #5050

方法二:

from functools import reduce #python2可以直接使用reduce,python3需要从functools导入reduce

L = range(1,101)
def f(x,y):

    return x+y

sum = reduce(f,L)

print(sum) #5050

方法三:

L = range(1,101)
sum = 0
n = len(L)-1
while n >= 0:
    sum+=L[n]
    n = n - 1
print(sum)#5050

还有其他方法吗,我再想想。。。

方法四:好开心啊,早上上班途中想起递归算法,一下又有一种

def sum(n):
    if n == 0 or n == 1:
        return 1
    return n + sum(n - 1)

print(sum(100)) #5050

posted on 2016-12-01 19:14  yaxin1989  阅读(9128)  评论(0编辑  收藏  举报

导航