2013-12-22 33 views
-2

我有一个变量堆栈:总和列表的列表简洁特定元素

stacks = [[1, 2, 3], [[4, 5, 6], [1, 2, 3]]] 

从这个我想创造的高度,其中每个高度的元素在每个指标1和的另一个列表堆叠。在上面的例子中,高度将是:

heights = [2, 7] 

凡2是叠层[0] [1]和图7是堆叠[1] [0] [1] +堆叠[1] [1] [1] 。对不起,如果它之前还不清楚。我如何使用列表解析,地图和/或简化来简洁地做到这一点?

+2

你试过什么? – Christian

+4

我不明白你的例子。你能准确地说出2和7来自哪里吗? –

+1

[2,7]从哪里来?你能详细说明吗?你的“堆栈”实际上是三个列表的列表吗? – clwen

回答

5

假设stacks是完全按照你所描述:

>>> stacks = [[1, 2, 3], [[4, 5, 6], [1, 2, 3]]] 
>>> wrapped = (s if isinstance(s[0], list) else [s] for s in stacks) 
>>> total = [sum(x[1] for x in w) for w in wrapped] 
>>> total 
[2, 7] 

这将是更自然的,恕我直言,如果stacks元素总是列表的列表:

>>> stacks = [[[1, 2, 3]], [[4, 5, 6], [1, 2, 3]]] 
>>> total = [sum(x[1] for x in w) for w in stacks] 
>>> total 
[2, 7] 
+0

这正是我一直在寻找的东西,非常感谢! – bard

相关问题