python - 将长元组列表拆分为嵌套列表
问题描述
我有一长串元组,需要将其转换为嵌套列表结构。
一长串元组是一个结构如下的数据列表:
[(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)]]
本质上,长度列表告诉元组列表中有多少元组放入每个嵌套列表中,但我不知道如何做到这一点。
解决方案
不是那么 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')]]
推荐阅读
- vue.js - 如何更改 v-btn 的状态(视觉上)以便在模板中选择/取消选择它?
- java - 如何在不重新部署的情况下更改 weblogic 中的属性值?
- python - How to use list of numpy arrays to train ML algorithm?
- java - 模拟助手类方法和返回布尔值
- php - 如何解决这个错误:explode() 期望参数 2 是字符串,给定对象?
- python - 使用 self 或 type(self) 调用类中的静态方法和类方法
- server-side - 为什么我们在服务器端使用 javascript?
- java - 为了让程序正常工作,我尝试了很多不同的方法。我正在尝试打印一个长度和高度为两个整数的空心盒子
- excel - Excel PowerPivot:动态排名
- python - 如何将我的数据从 str 更改为 int?