变量反演的总和

时间:2015-08-12 06:52:31

标签: python math sum

如何创建一个从给定的列表计算所有反向值总和的函数?

lst = [1,2,3]

def sum_inv(lst):
   # what to put here? 

sum_inv([1,2,3]) = 1/1 + 1/2 + 1/3

你有什么建议吗?

2 个答案:

答案 0 :(得分:6)

这应该做你正在寻找的事情:

def sum_inv(lst):
   return sum(1/x for x in lst)

正如ozgur在评论中指出的那样,如果lst包含任何0,则会抛出异常。如果你想忽略任何0并避免异常,那么你可以在理解中添加一个检查以忽略这些值。

def sum_inv(lst):
   return sum(1/x for x in lst if x != 0)

答案 1 :(得分:1)

对于Python2,你应该使用1.0 / x,否则你会被截断的divison

def sum_inv(lst):
   return sum(1.0 / x for x in lst if x != 0)