Python 列表中某些项目的总和

Python 列表中某些项目的总和,python,list,Python,List,我正在研究一个概率相关的问题。我只需要对特定列表中的特定项目求和 我尝试过使用“for”函数,但没有成功。我正在寻找一种方法,根据项目在列表中的位置来选择项目,并对其进行汇总。您真的应该在问题中多加说明,但是: stuff=[1,2,3,4,5,6,7,8] #将指数为偶数的数字相加: 有趣的_total=sum([x代表i,如果i%2==0,则枚举(填充)中的x]) 好笑的总数 # 16 这应该让你开始。使用for循环的方法也会奏效。您的代码中可能有一个bug stuff=[1,2,3,4,

我正在研究一个概率相关的问题。我只需要对特定列表中的特定项目求和


我尝试过使用“for”函数,但没有成功。我正在寻找一种方法,根据项目在列表中的位置来选择项目,并对其进行汇总。

您真的应该在问题中多加说明,但是:

stuff=[1,2,3,4,5,6,7,8]
#将指数为偶数的数字相加:
有趣的_total=sum([x代表i,如果i%2==0,则枚举(填充)中的x])
好笑的总数
# 16
这应该让你开始。使用
for
循环的方法也会奏效。您的代码中可能有一个bug

stuff=[1,2,3,4,5,6,7,8]
指数_至_包括=[1,3,4,5,6]
总计=0
对于枚举(stuff)中的i,x:
如果指数_至_中的i包括:
有趣的_总数+=x
你也可以:


def每三分之一(i)保存一次:
返回i%3==0
#变量定义如上所述。。。
对于枚举(stuff)中的i,x:
如果每三分之一(i)保留一次:
#做事

您可以使用
操作符.itemgetter
仅选择列表中的证书索引或目录中的键

from operator import itemgetter

data = [1, 2, 3, 4, 5, 6, 7, 8]
get_indexes = itemgetter(2, 5, 7)
#this will return indexes 2, 5, 7 from a sequence 
sum(get_indexes(data)) #3+6+8
#returns 17
该示例适用于列表,但您也可以对dict键使用itemgetter,只需使用
itemgetter('key2','key5','key7')({some_dict})

要仅获取偶数或奇数索引,请使用切片而不是枚举和循环,这样效率更高且更易于读取:

even = sum(data[::2])
odd = sum(data[1::2])
您也可以使用过滤器,但我不建议您使用以下方法通过索引获取:

sum(filter(lambda n: data.index(n) % 2 == 0, data))

给出一个答案,而不仅仅是“没有工作”。你如何根据索引选择项目?请分享您的标准,以便我们提供帮助。谢谢。您可以使用
for index,elem in enumerate(my_list):
遍历列表,同时获取每个元素的索引。请提供一些详细信息,说明您正在筛选哪些元素,哪些元素不起作用,以及可能的预期结果。