Skip to main content
 首页 » 编程设计

python之将此列表拆分为更小列表的最佳方法

2025年05月04日13zdz8207

我一直在努力寻找最好的方法来拆分这个有序但分成几部分的数字列表。例如:

data = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 29, 30, 31, 32, 33, 35, 36, 44, 45, 46, 47] 

我希望输出是这样的..

sliced_data = [[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19],[29, 30, 31, 32, 33],[35, 36],[44, 45, 46, 47]] 

我一直在尝试查看,直到它是空的,但效果不是很好..

编辑:

for each_half_hour in half_hour_blocks: 
    if next_number != each_half_hour: 
        skippers.append(half_hour_blocks[:next_number]) 
        del half_hour_blocks[:next_number] 
 
    next_number = each_half_hour + 1 

请您参考如下方法:

>>> data = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 29, 30, 31, 32, 33, 35, 36, 44, 45, 46, 47] 
>>> from itertools import groupby, count 
>>> [list(g) for k,g in groupby(data, key=lambda i, c=count():i-next(c))] 
[[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19], [29, 30, 31, 32, 33], [35, 36], [44, 45, 46, 47]]