如何在遇到特定列表元素时将列表分解为子列表



我有这个列表:

main_list = [[1, 'N'], [2, 'N'], [3, 'Y'], [4, 'Y'], [5, 'N'], [6, 'N']]

我的要求是:
1.我需要循环遍历main_list,当main_list[i][1]=='N'时,我需要不断向sub_list1
添加main_list[i]2.但是当我遇到main_list[i][1]=='Y'的那一刻,应该会发生两件事:
- main_list具有'Y'元素不应添加到任何sub_list
- sub_list1应该停止
3.当我再次遇到main_list[i][1]=='N'时,将生成一个新的sub_list,即sub_list2,并且列表元素应该添加到这个新sub_list
4. 最终输出应如下所示:

sub_list1 = [[1, 'N'], [2, 'N']]
sub_list2 = [[5, 'N'], [6, 'N']]

你能帮忙吗?
提前致谢

from itertools import groupby
main_list = [[1, 'N'], [2, 'N'], [3, 'Y'], [4, 'Y'], [5, 'N'], [6, 'N']]
i = 0
d = {}
for key, group in groupby(main_list, lambda x: x[1]):    
    if key == 'Y' : continue 
    d['sub_list{}'.format(i+1)] = []       
    for g in group:        
        d['sub_list{}'.format(i+1)].append(g)
    i += 1    

最新更新