我有此列表:
main_list = [[1, 'N'], [2, 'N'], [3, 'Y'], [4, 'Y'], [5, 'N'], [6, 'N']]
我的要求是:
1.我需要遍历main_list,并且在main_list[i][1]=='N'
时,需要继续将main_list[i]
添加到sub_list1
2.但是当我遇到main_list[i][1]=='Y'
时,应该发生两件事:
-具有main_list
的{{1}}元素不应添加到任何'Y'
-sub_list
应该停止
3.当我再次遇到sub_list1
时,将生成一个新的sub_list,即main_list[i][1]=='N'
,并且应该将列表元素添加到此新的sub_list
4.最终输出应如下所示:
sub_list2
能帮忙吗?
预先感谢
答案 0 :(得分:0)
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