使用lambda的列表对的python求和

使用lambda的列表对的python求和,python,lambda,Python,Lambda,我正在尝试编写一个lambda函数,它接受一个列表并返回一个列表,该列表包含列表中的一对数字及其索引详细信息的总和 范例 input: [4,5,1] output: [(0,1,9),(0,2,5),(1,2,6)] in the above example we do pairwise sum 1. (4,5) --> 9 2. (4,1) --> 5 3. (5,1) --> 6 嵌套循环解 def sumpair(L): result=[] for i

我正在尝试编写一个lambda函数,它接受一个列表并返回一个列表,该列表包含列表中的一对数字及其索引详细信息的总和

范例

input: [4,5,1]
output: [(0,1,9),(0,2,5),(1,2,6)]
in the above example we do pairwise sum 

 1. (4,5) --> 9
 2. (4,1) --> 5
 3. (5,1) --> 6
嵌套循环解

def sumpair(L):
 result=[]
 for i in range(len(L)):
  for j in range(i+1, len(L)):
   result.append((i,j,L[i]+L[j]))
 return result

我知道如何使用嵌套for循环编写它,想知道是否可以使用lambda编写它,如果不可以,我想了解我们可以使用lambda编写什么样的功能?

lambda和for循环不是相互排斥的。您可以在lambda中添加一个列表,并将其命名为“结束一天”:

compute = lambda L: [(i, j, L[i]+L[j]) for i,j in itertools.combinations(range(len(L)), 2)]
(不要忘记导入itertools)。然后你会得到

In [12]: compute([4,5,1])
Out[12]: [(0, 1, 9), (0, 2, 5), (1, 2, 6)]
另一方面,如果您不想创建新变量:

(lambda L: [(i, j, L[i]+L[j]) for i,j in itertools.combinations(range(len(L)), 2)])([4,5,1])

会给你同样的结果吗

你能证明你在解决这个问题上有什么努力吗?例如,您的嵌套循环解决方案?@ScottHunter添加了嵌套循环解决方案您可以编写一个lambda来调用
sumpair
函数,但这可能不是您想要的。