从列表列表中获取具有元素的条件递增顺序的新列表
Get new list with conditional increment order of elements from list of lists
我有如下所示的整数列表:
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]
我想将每个列表项与下一个列表中的 item/s 进行比较,并获得大于前一项的项目:
例如:
在列表中,第一项是 [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)
在 Whosebug 中查看了很多增量订单的代码,但找不到任何解决方案。
试试这个:
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]
输出(第一个):[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]
我有如下所示的整数列表:
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]
我想将每个列表项与下一个列表中的 item/s 进行比较,并获得大于前一项的项目:
例如: 在列表中,第一项是 [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)
在 Whosebug 中查看了很多增量订单的代码,但找不到任何解决方案。
试试这个:
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]
输出(第一个):[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]