【发布时间】:2018-02-11 05:09:38
【问题描述】:
问题要求编写一个函数,该函数接受一些无序列表并从该无序列表中提取任何有序的子列表。示例 [5, 2, 1, 3, 4] 将变为 [1,3,4]。我的问题在于索引,我想要一种方式来表达如果当前迭代大于它之前的迭代,我想添加它。但是,我的代码遇到的问题是它比较了一个项目的第一个和最后一个。
对于我的代码: [5, 2, 1, 3, 4] => [5,1,3,4]
def numIncreasing(lst):
ans=[]
for index in range(len(lst)):
if lst[index]>=lst[index-1]:
ans.append(lst[index])
elif lst[index]<lst[index-1] and lst[index]<lst[index+1]:
ans.append(lst[index])
else:
continue
return ans
编辑:修复了无法识别模式开头的代码
【问题讨论】:
-
您的缩进导致语法错误。
-
也不清楚您期望的行为是什么。您说“任何已订购的子列表”。如果一个列表有多个有序子列表怎么办?例如,
[5, 1, 2, 3, 4, 9, 6, 7, 8]? -
目前还不清楚在 no 长度大于 1 的排序子列表的情况下会发生什么。(我假设长度为 1 的排序子列表不是当然,这很有趣,但如果这个假设是错误的,请纠正我。)那么不包含任何元素的空列表呢?
-
子列表必须大于一且 [5, 1, 2, 3, 4, 9, 6, 7, 8] => [1, 2, 3, 4, 9]
-
@barskyn 你想要最大的子列表吗?好像是这样。