问题描述
我正在尝试创建一个等于列表中所有其他数字之和的函数.例如,如果列表是 [0,1,2,3,4,5],则函数应该等于 5+3+1.我怎么能这样做?我对 Python 的了解并没有比 while 和 for 循环更深入.谢谢.
I'm trying to create a function equal to the sum of every other digit in a list. For example, if the list is [0,1,2,3,4,5], the function should equal 5+3+1. How could I do this? My knowledge of Python does not extend much farther than while and for loops. Thanks.
推荐答案
这是一个简单的单行:
In [37]: L Out[37]: [0, 1, 2, 3, 4, 5] In [38]: sum(L[1::2]) Out[38]: 9
在上面的代码中,L[1::2] 表示获取 L 中的第二个元素,从索引 1 开始"
In the above code, L[1::2] says "get ever second element in L, starting at index 1"
这是一种自己完成所有繁重工作的方法:
Here is a way to do all the heavy lifting yourself:
L = [0, 1, 2, 3, 4, 5] total = 0 for i in range(len(L)): if i%2: # if this is an odd index total += L[i]
这是另一种方式,使用 enumerate:
Here's another way, using enumerate:
L = [0, 1, 2, 3, 4, 5] total = 0 for i,num in enumerate(L): if i%2: total += num