Python求一个数字列表的元素总和。练手:

第一种方法,直接sum(list):

1 lst = list(range(1,11)) #创建一个1-10的数字列表

2 total = 0 #初始化总和为0

3

4 #第一种方法

5 total = sum(lst); #直接调用sum()函数

6 print(total) #55

第二种方法,while循环:

lst = list(range(1,11)) #创建一个1-10的数字列表

total = 0 #初始化总和为0

i=0while(i

total+=lst[i]

i+= 1

print(total) #输出55#当然也可以把while循环编写在函数里

defsumOfList(alst):

total=0

i=0while i

total+=alst[i]

i+= 1

returntotalprint("Sum is: \n\t", sumOfList(lst));

第三种方法for循环:

1 lst = list(range(1,11)) #创建一个1-10的数字列表

2 total = 0 #初始化总和为0

3

4 for i inlst:5 total +=i6

7 print(total) #输出55

8 #也可以写成如下:

9 defsumOfList(alst):10 total =011 for i inalst:12 total +=i13 returntotal14 print("Sum is: \n\t", sumOfList(lst));

第四种方法还是for循环:

1 lst = list(range(1,11)) #创建一个1-10的数字列表

2 total = 0 #初始化总和为0

3

4 for i inrange(len(lst)):5 total +=lst[i]6 print(total) #输出55

7 #也可以写成如下这样

8 defsumOfList(alst):9 total =010 i =011 for i inrange(len(alst)):12 total +=alst[i]13 returntotal14 print("Sum is: \n\t", sumOfList(lst))

第五种方法reduce:

1 lst = list(range(1,11)) #创建一个1-10的数字列表

2 total = 0 #初始化总和为0

3

4 from functools importreduce5 total = reduce(lambda x,y:x+y, lst)6 print(total) #输出55

第六种方法递归:

1 lst = list(range(1,11)) #创建一个1-10的数字列表

2 total = 0 #初始化总和为0

3

4 defsumOfList(lst,size):5 if (size ==0):6 return07 else:8 return lst[size-1] + sumOfList(lst, size-1)9

10 total =sumOfList(lst,len(lst))11 print("Sum is:", total)

代码贴得乱,为了给自己复习的时候可以集中精神。

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐