【发布时间】:2017-10-20 06:19:29
【问题描述】:
我有这样的结构:
structure = [('a', 1), ('b', 3), ('c', 2)]
我想使用sum() 内置方法(在一行中)对整数(1+3+2)求和。
有什么想法吗?
【问题讨论】:
标签: python
我有这样的结构:
structure = [('a', 1), ('b', 3), ('c', 2)]
我想使用sum() 内置方法(在一行中)对整数(1+3+2)求和。
有什么想法吗?
【问题讨论】:
标签: python
sum(n for _, n in structure)
会起作用的。
【讨论】:
('a', 3, 'extra-data-to-ignore'),它将不起作用,而显式索引和zip 都接近——甚至是reduce ——这样概括好一点。我猜在 Py3 中你可以写 sum(b for _, b, *_ in structure) 什么的……
x[1] 评估中的边界检查有关。
t[1]..
sum(x[1] for x in structure)
应该工作
【讨论】:
你可以的
sum(zip(*structure)[1])
【讨论】:
sum(map(operator.itemgetter(1),structure)...(但真正的意义是什么?)
zip 的新版本比我们在 python2.7 (OS-X 10.5) 上的答案略慢。
使用函数式样式,您可以这样做
reduce(lambda x,y:x+y[1], structure,0)
【讨论】: