2013-12-22 75 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

相關問題