python以升序取值并删除非增加值

时间:2017-02-28 15:30:31

标签: python

python程序。如何按整个列表的升序排列元素并删除不遵循增长的项目?没有使用我在这里做的最大值

def ascending_num(L1):
    L2 = [L1[0]]
    for i in range(1,len(L1)):
        if L1[i] > max(L1[0:i]):`enter code here
            L2.append(L1[i])
    return L2

print(ascendents_num([2,4,3,5,6,8]))

为例

[2,4,3,5,6,8]

输出

[2,4,5,6,8]

1 个答案:

答案 0 :(得分:1)

max可以省略,你可以一次迭代2个元素,如果下一个元素大于最后一个元素,它将被附加到新列表。

li = [2,4,3,5,6,8]
li = [li[0]] + [j for i, j in zip(li, li[1:]) if i < j]
print(li)

zip返回一系列元组,每个元素都包含两个连续元素,因为第二个元素在第二个元素之前通过切片移动。

如果你想把它写成一个函数,可以这样做:

li = [2,4,3,5,6,8]
def eliminate(li):
    return [li[0]] + [j for i, j in zip(li, li[1:]) if i < j]
print(eliminate(li))