我有这个列表:
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