Python列表排序难题
我有一个不寻常的列表排序问题,我正在努力找到一个简洁有效的解决方法。问题如下:我有一个名为index的列表,该列表中的每一项都对应于第二个列表数据的索引。例如,索引中的第一个数字是零,对应于列表数据中的第一项,即1,索引中的3对应于列表数据中的6,因为6是列表数据中的第三项[包括第0项] 现在,我想对列表数据进行组织,以便在索引之间进行分组,如下所示:Python列表排序难题,python,list,Python,List,我有一个不寻常的列表排序问题,我正在努力找到一个简洁有效的解决方法。问题如下:我有一个名为index的列表,该列表中的每一项都对应于第二个列表数据的索引。例如,索引中的第一个数字是零,对应于列表数据中的第一项,即1,索引中的3对应于列表数据中的6,因为6是列表数据中的第三项[包括第0项] 现在,我想对列表数据进行组织,以便在索引之间进行分组,如下所示: indexes = [ 0, 3, 6, 8, 12, 13] data = [1, 2, 5, 6, 11, 13, 15, 23, 35,
indexes = [ 0, 3, 6, 8, 12, 13]
data = [1, 2, 5, 6, 11, 13, 15, 23, 35, 36, 38, 41, 46]
解决方案:
organised_data = [ [1,2,5], [6,11,13], [15,23], [35,36,38,41], [46] ]
我已经做了很多年了。您可以在列表中的连续索引之间使用切片
>>> [data[indexes[i]:indexes[i+1]] for i in range(len(indexes)-1)]
[[1, 2, 5], [6, 11, 13], [15, 23], [35, 36, 38, 41], [46]]
可以在列表中的连续索引之间使用切片
>>> [data[indexes[i]:indexes[i+1]] for i in range(len(indexes)-1)]
[[1, 2, 5], [6, 11, 13], [15, 23], [35, 36, 38, 41], [46]]
使用:
使用: