在列表列表中汇总第二个列表项

mk8*_*efz 4 python list-comprehension list

我的数据是不同大小的列表列表:

data = [[[1, 3],[2, 5],[3, 7]],[[1,11],[2,15]],.....]]]
Run Code Online (Sandbox Code Playgroud)

我想要做的是返回一个列表列表,其中每个列表列表的第二个元素的值相加 - 所以,3 + 5 + 7是一个列表,所以是11 + 15,等等:

newdata = [[15],[26],...]
Run Code Online (Sandbox Code Playgroud)

或者甚至只是一个总和列表就可以了,因为我可以从那里拿走它:

newdata2 = [15,26,...]
Run Code Online (Sandbox Code Playgroud)

我已经尝试通过列表推导的不同形式和结构访问列表中的项目,但我似乎无法得到它我想要的格式.

MaT*_*MaX 7

使用列表理解尝试这种单行方法:

[sum([x[1] for x in i]) for i in data]
Run Code Online (Sandbox Code Playgroud)

输出:

data = [[[1, 3],[2, 5],[3, 7]],[[1,11],[2,15]]]
[sum([x[1] for x in i]) for i in data]
Out[19]: [15, 26]
Run Code Online (Sandbox Code Playgroud)

如果您希望输出是列表,请使用

[[sum([x[1] for x in i])] for i in data]
Run Code Online (Sandbox Code Playgroud)

  • 我认为OP只希望它更深一层,所以`[[sum([x [1] for x in i])] for i in data]`.尽管如此+1 ... (2认同)