Python连续相同的数

【问题描述】在输入个数n,在输入的若干数中,找出连续n个相同的段。
【输入形式】

输入个数n

输入若干数,用逗号分割
【输出形式】

输出连续的段,如有多段,显示在不同行。
【样例输入】

3

1,2,3,3,3,4,5,5,5,6,7,8,8,8
【样例输出】

3

3,3,3

5,5,5

8,8,8

【样例输入】

5

1,1,1,1,1,2,2,2,3,3,3,4,5,5,5,5,5,5

【样例输出】

3

1,1,1,1,1

5,5,5,5,5

5,5,5,5,5

想了大半天也没想出来,求解答!
自己已经写了一大半,卡在了最后怎么分行输出相同的数。前面的过程也过于繁杂了,想看一看怎么写比较精炼。

代码如下,有帮助请点击采纳谢谢:

n = int(input())
num_list = [int(num) for num in input().split(',')]

flag = 0
count = 0
ret_list = []
for num in num_list:
    if num == flag:
        count += 1
        if count == (n-1):
            ret_list.append(','.join([str(num)] * n))
            count = 0
    else:
        flag = num
print(len(ret_list))
for l in ret_list:
    print(l)

img

代码如下,你试试看行不

# coding:utf8

num = eval(input('请输入个数:'))
ls = input('请输入若干数:')

ls2 = ls.split(',')
ls2 = [int(i) for i in ls2]


def justify_equal(ls):
    # 判断列表中的数是否相同
    if len(set(ls)) == 1:
        return True
    else:
        return False


def get_res(ls):
    res = []
    if len(ls) < num:
        return res
    else:
        for i in range(len(ls2)-num+1):
            new_ls = ls2[i:i+num]
            if justify_equal(new_ls):
                res.append(new_ls)
        return res

res = get_res(ls2)
print(len(res))
for each in res:
    a = [str(i) for i in each]
    print(','.join(a))