创建奇数索引之和python

2022-01-09 00:00:00 python while-loop sum for-loop

问题描述

我正在尝试创建一个等于列表中所有其他数字之和的函数.例如,如果列表是 [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

相关文章