hli*_*117 20 python lambda functional-programming sum
我有一个与此类似的数据结构
table = [
("marley", "5"),
("bob", "99"),
("another name", "3")
]
Run Code Online (Sandbox Code Playgroud)
我想做什么,得到第二列(5 + 99 + 3)的总和在功能上像这样:
total = sum(table, lambda tup : int(tup[1]))
Run Code Online (Sandbox Code Playgroud)
这将是与python函数类似的语法sorted
,但这不是你将如何使用python的sum
函数.
总结第二列的pythonic/functional方法是什么?
Pet*_*vaz 33
一种方法是使用生成器表达式:
total = sum(int(v) for name,v in table)
Run Code Online (Sandbox Code Playgroud)
如果你想使用lambda,下面应该解决它:
total = sum(map(lambda x: int(x[1]), table))
Run Code Online (Sandbox Code Playgroud)