Получить новый список с условным порядком приращения элементов из списка списков

У меня есть список списка целых чисел, как показано ниже:

 flst = [[19],
 [21, 31],
 [22],
 [23],
 [9, 25],
 [26],
 [27, 29],
 [28],
 [27, 29],
 [2, 8, 30],
 [21, 31],
 [5, 11, 32],
 [33]]

Я хочу получить список целых чисел в порядке возрастания, как показано ниже:

out = [19, 21, 22, 23, 25, 26, 27, 28, 29, 30, 31, 32, 33]

Я хочу сравнить каждый элемент списка с элементом (ами) в следующем списке и получить элемент, который больше, чем предыдущий элемент:

Например: в списке первым пунктом является [19], а следующими пунктами списка является [21,31]. Оба элемента больше, чем [19], но [21] близок к [19], поэтому его следует выбрать.

Я изучаю Python и попробовал следующий код:

 for i in range(len(flst)-2):
    for j in flst[i+1]:
        if j in range(flst[j], flst[j+2]):
            print(j)

Прошел много кодов для возрастающего порядка в stackru, но не смог найти никакого решения.

2 ответа

Попробуй это:

flst[0]=flst[0][0]
for c in range(len(flst)-1):
    flst[c+1]=sorted([n for n in flst[c+1] if n>flst[c]],key=lambda x: x-flst[c])[0]

Выход (в flst): [19, 21, 22, 23, 25, 26, 27, 28, 29, 30, 31, 32, 33]

Как можно ближе к одной линии, как я мог получить

func = lambda x, t=[]: ([t.append(min([i for i in c if i > max([0]+t)])) for (index, c) in enumerate(x)], sorted(t))[1]

func(flst)
[19, 21, 23, 25, 26, 27, 29, 29, 30, 31, 31, 32, 33]
Другие вопросы по тегам