简要总结列表列表中的特定元素

bar*_*ard -2 python

我有一个变量堆栈:

stacks = [[1, 2, 3], [[4, 5, 6], [1, 2, 3]]]
Run Code Online (Sandbox Code Playgroud)

从这里我想创建另一个高度列表,其中每个高度是堆栈中每个堆栈的索引1处的元素的总和.在上面的示例中,高度将是:

heights = [2, 7]
Run Code Online (Sandbox Code Playgroud)

其中2是堆栈[0] [1],7是堆栈[1] [0] [1] +堆栈[1] [1] [1].对不起,如果以前不清楚.如何使用列表推导,map和/or reduce 简洁地完成此操作?

DSM*_*DSM 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]
Run Code Online (Sandbox Code Playgroud)

恕我直言,如果元素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]
Run Code Online (Sandbox Code Playgroud)