如何用Python找出list中所有升序片段

如shuzu=[1,2,4,5,6]输出1,2和4,5,6


shuzu = [1,2,4,5,6,5,12,11,12,13]
cnt = 0     # 记录升序元素个数
for i in range(len(shuzu) - 1):
    if shuzu[i] + 1 == shuzu[i+1]:
        cnt += 1
        print(shuzu[i],end=",")
    else:
        if cnt >= 1:
            print(shuzu[i])
        cnt = 0
    if i == len(shuzu)-2:   #末尾元素处理
        print(shuzu[len(shuzu)-1])

img

你这个升序的序列的话1 2 4 5 6 也是升序为什么输出1,2和4,5,6
你是想输出连续的序列吧:

a=[1,2,4,5,6]
s = []  # 空栈
for i in sorted(set(a)):
    if len(s) == 0 or s[-1] + 1 == i:
        s.append(i)  # 入栈
    else:
        if len(s) >= 2:
            print(s)
        s = []    # 清空
        s.append(i)  # 入栈
# 最后一轮,需判断下
if len(s) >= 2:
    print(s)

img


升序最大:

a=[1,2,4,5,6]
s = []  # 空栈
for i in range(len(a)):
    if i==0:
        i+=1
        s.append(a[i-1])
    else:
        if a[i]>=a[i-1]:
            s.append(a[i])
        
print(s)

img