这是现在可用的
l = [list[0]]
list.pop(0)
x = len(list)
for i in range(x+1):
n = len(l)
j = 0
if list[j] > l[n-1]:
l.append(list[j])
list.pop(j)
j = j+1
elif i == len(list):
l.append(list[j])
list.pop(j)
print(list)
print(l)
`
一些指针真的很有帮助!
答案 0 :(得分:1)
制作列表的copy
。迭代 successions中的副本并检查在result
循环的当前迭代中将单调增加的条目添加到while
。删除添加到result
的条目。
在while循环的下一次迭代中重复 check-append-delete 循环;直到列表副本为空:
lst = [1, 2, 2, 2, 11, 5, 9, 8, 19]
lst_cp = lst.copy()
result = []
while lst_cp: # keep iterating until list is empty
result.append(lst_cp.pop(0))
for v in lst_cp[:]:
if v > result[-1]:
result.append(v)
lst_cp.remove(v)
print(result)
# [1, 2, 11, 19, 2, 5, 9, 2, 8]