如何只取整数项并从列表中计算总和?

时间:2019-07-11 14:20:47

标签: python django

在这里,我列出了产品名称和产品价格,但我只想从列表中拿出产品价格,然后计算所有产品的总价。我该怎么办?

For example i have a list:
all_products = ['food',1000,'pasta',500,'beer',400]
how can i do : 1000+500+400 = 1900

1 个答案:

答案 0 :(得分:1)

鉴于整数位于奇数索引上,您可以对一个值片求和,例如:

sum(all_products[1::2])

,但最好将两者合并在一起,并尽量避免这种情况。例如,通过生成2元组的列表等,使用像上面这样的“扁平”结构通常不是一个好主意。

我们还可以汇总列表中的intfloat,例如:

sum(p for p in all_products if isinstance(p, (int, floats)))

但这仍然是“不安全的”,因为可能并非所有整数/浮点数都是价格。