假设我们有一个函数sum,它接受两个数字并返回它们的和:
def sum(a, b):
return a + b
我们想要使用map函数来计算可迭代容器中的总和:
map(sum, [(1, 2), (3, 4)])
这将引发一个异常:
TypeError: sum() takes exactly 2 arguments (1 given)
在这里发生的情况是对参数 (1, 2) 和 (3, 4) 调用了 sum,这给我们带来了一个错误。我们可以这样做:
sum(*(1, 2)) 将会正确返回。我的问题是: 我们如何优雅地使用 map 将此元组传递到 sum 中呢? 下面是一种解决方案,但不太符合我的要求:
map(lambda x: sum(*x), [(1, 2), (3, 4)])