我是编程新手。我开始做这个问题,我必须从给定列表中制作降序值的子列表。
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
元素,我会一起检查ith
和ith+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