抱歉,标题令人困惑,但我无法说出更好的话了。

因此,假设我有以下列表:

My_list = [1,1,1,0,0,0,1,1,1,1,0,0]


如何显示连续重复的1和0的最大数量?

我想显示4,因为连续重复的1s最长的链是4。

而连续重复0的最长链显示3为3。

最佳答案

一个简单的解决方案,可能在itertools中的某个地方更优雅。

x = [1,1,1,0,0,0,1,1,1,1,0,0,0,0,0]

d = {}
c = x[0]
c_cnt = 1

for i in x[1:]:
    if i == c:
        c_cnt +=1
    else:
        d[c] = max(d.get(c,0),c_cnt)
        c=i
        c_cnt=1
d[c] = max(d.get(c,0),c_cnt)

print(d)

09-10 00:24