Если выражение в понимании списка с лямбдой

у меня есть

listName = [[0,1,2,15,16,17,2,3,4,6,8,9]] 

Моя строка кода

 [list(g) for k, g in groupby(listName, key=lambda i,j=count(): i-next(j))] 

listName на [[0,1,2],[15,16,17],[2,3,4],[6,8,9]] Я хочу, чтобы раскол произошел, только если следующее число меньше чем предыдущее число. т.е. я хочу, чтобы мое имя listName на

 [[0,1,2,15,16,17],[2,3,4,6,8,9]] 

Благодаря! 🙂

One Solution collect form web for “Если выражение в понимании списка с лямбдой”

Гораздо проще использовать функцию генератора, используя itertools.chain для создания итератора и сглаживания вашего списка:

 listName = [[0, 1, 2, 15, 16, 17, 2, 3, 4, 6, 8, 9]] from itertools import chain def split(l): it = chain(*l) prev = next(it) tmp = [prev] for ele in it: if ele < prev: yield tmp tmp = [ele] else: tmp.append(ele) prev = ele yield tmp print(list(split(listName))) 
Python - лучший язык программирования в мире.