首页 > 解决方案 > 将长元组列表拆分为嵌套列表

问题描述

我有一长串元组,需要将其转换为嵌套列表结构。

一长串元组是一个结构如下的数据列表:

[(0.8, A), (-0.4, B), (1.0, C), (0.5, D), (-0.7, E)]

我有一个这样的长度列表:

[2, 2, 1]

我的目标是以这样的嵌套列表结束:

[[(0.8, A), (-0.4, B)], [(1.0, C), (0.5, D)], [(-0.7, E)]]

本质上,长度列表告诉元组列表中有多少元组放入每个嵌套列表中,但我不知道如何做到这一点。

标签: pythonpython-3.x

解决方案


不是那么 Pythonic,但for循环会做:

x = [(0.8, 'A'), (-0.4, 'B'), (1.0, 'C'), (0.5, 'D'), (-0.7, 'E')]
lns = [2, 2, 1]

res = []
start = 0
for ln in lns:
    res.append(x[start:start+ln])
    start += ln
    
print(res)

输出:

[[(0.8, 'A'), (-0.4, 'B')], [(1.0, 'C'), (0.5, 'D')], [(-0.7, 'E')]]

推荐阅读