输入到列表并找到相同输入python的最长条纹 - python

我正在编写一个程序,其中用户将值输入到列表中,直到想要结束它为止,该程序将告诉用户输入的数字最长的时间。例如,如果用户输入了7,7,7,6,6,4,则将得到输出:您的最长条纹是3。连续7次输入7。

到目前为止,我已经知道了,并且似乎不想永远结束当前的运行,因此,如果我输入7,7,7,6,6,6,6,5,4,它会告诉我最长的连胜纪录是7继续从进入的7连胜。这就是我所拥有的:

mylist = []

run = 1

currentrun = 1

number = input('enter a number: ')
mylist.append(number)



while number != 'end' :
    number = input ('enter a number: ')
    mylist.append(number)
for i in range (len(mylist)):

    if mylist[i] == mylist[i-1] and mylist[i] == mylist[i+1] :
        currentrun = currentrun + 1
    else:
        currentrun = 0

    print (currentrun)
    if currentrun > run:
        run = currentrun

print (mylist)

print ('Your longest run was' ,run)

任何帮助是极大的赞赏。

python大神给出的解决方案

>>> from itertools import groupby
>>> input_iter = iter(lambda: input('enter a number: '), 'end')
>>> max(sum(1 for x in v) for k,v in groupby(input_iter))
enter a number: 7
enter a number: 7
enter a number: 7
enter a number: 6
enter a number: 6
enter a number: 4
enter a number: end
3