我有一个整数列表,如下所示:
2
我想按升序获取整数列表,如下所示:
flst = [[19],
[21, 31],
[22],
[23],
[9, 25],
[26],
[27, 29],
[28],
[27, 29],
[2, 8, 30],
[21, 31],
[5, 11, 32],
[33]]
我想将每个列表项与下一个列表中的一个或多个项目进行比较,并获得大于上一个项目的项目:
例如: 在列表中,第一个项目是[19],下一个列表项目是[21,31]。两个元素都大于[19],但[21]接近[19],因此应选择它。
我正在学习python并尝试了以下代码:
out = [19, 21, 22, 23, 25, 26, 27, 28, 29, 30, 31, 32, 33]
通过了许多代码以获取stackoverflow中的递增顺序,但是找不到任何解决方案。
答案 0 :(得分:1)
尝试一下:
""
输出(最初):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]
答案 1 :(得分:1)
尽可能接近一行
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]