首页 > 解决方案 > 计算一行中有多少数字按升序排列

问题描述

我需要编写一个函数来计算有多少数字是按升序排列的。例如:我们有这个列表:

L = [2, 4, 5, 6, 7, 2, 3, 2, 2, 2, 8, 7, 5, 6]

最大的升序数是 5。

我试过了:

count=0
def ascord(L,count):
    for i in range(0,len(L)-1):
        if L[i]<L[i+1]:
            count+=1
    return count

但输出为 7。我不知道如何“重置”计数,因此不会考虑 [2,8] 和 [5,6]

编辑:我的意思是,如果我是前任。在列表末尾添加 asc 中的 20 个数字。顺序它们将是最大的数字系列,因此第一个计数应设置为 0,并从 start 开始计数

PS。对不起我的英语不好。

标签: pythonpython-3.x

解决方案


清理:

def ascord(L):
    answer = 0
    count = 1
    for i in range(len(L) - 1):
        if L[i] < L[i + 1]:
            count += 1
        else:
            if count > answer:
                answer = count
            count = 1
    return max(count, answer)

L = [2, 4, 5, 6, 7, 2, 3, 2, 2, 2, 8, 7, 5, 6]
print (ascord(L)) # 5

干杯:)


推荐阅读