在 python 中从列表中创建降序值的子列表



我是编程新手。我开始做这个问题,我必须从给定列表中制作降序值的子列表。

input_list=[7,1,6, 17, 18, 25, 25, 21, 11, 5 ,3 ,3,26,25]

预期输出应为:

descend_lists=[[7, 1], [25, 25, 21, 11, 5, 3, 3], [26, 25]]

我不知道从哪里开始。我脑海中的想法是,如果元素大于ith+1元素,我会一起检查ithith+1元素ith然后将两个元素添加到descend_list。请帮帮我。

我会怎么做,考虑一个由当前子列表组成的临时列表,按降序迭代原始列表,并在它停止降序时弹出它。

def sublists(l):
result = [] # the list of sub-lists
sublist = [] # temporary sub-list kept in descending order
for i in range(len(l)):
sublist.append(l[i]) # add the element
if(i == len(l) - 1 or l[i] < l[i+1]):
result.append(sublist)
sublist = []
return result

在 if 语句中,发生的事情是,当您到达列表末尾 (i == len(l( - 1( 或到达降序末尾 (l[i]

这将保留列表中的所有元素,并为排序列表(具有不同的元素(生成所有单例,而不是简单地丢弃它们。这一点,以及我相信代码更适合以这种形式阅读的初学者这一事实,这就是为什么我在这里添加我的答案而不是@Ch3steR

最新更新