python - 计算一行中有多少数字按升序排列
问题描述
我需要编写一个函数来计算有多少数字是按升序排列的。例如:我们有这个列表:
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。对不起我的英语不好。
解决方案
清理:
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
干杯:)
推荐阅读
- python - 反正有没有在正则表达式的搜索功能中使用变量?
- psql - 我怎样才能回滚 psql -f 命令?
- android - 如何在视图绑定中的活动中获取回收者视图当前项目文本值
- typescript - I'm getting a confusing legend in Highcharts (angular-highcharts)
- html - HTML 导航栏没有到顶部
- tableau-api - 如何根据表格中的客户类型为表格着色
- python - 是否可以使用脚本阻止 Windows APPS?
- express - 如何使用 Puppetter 和 express API 并正确关闭浏览器而不影响其他并发请求
- jquery - jQuery blockUI - 'message' 属性值不会出现在具有相同类的阻塞 div 中
- sql-server - MS SQL 可用性组故障转移行为?