如何计算数组python中连续出现的值的次数?

sky*_*000 4 python list duplicates

我有一个元素数组x=[9,2,2,2,2,3,4,4,55,55,6,2,2,2,7,0,0],我想知道一个值在这个数组中连续显示多少次,使用python语言.预期结果应该是:a=[1,4,1,2,2,1,3,1,2]

以下代码显示了x中的重复数字

x=[9,2,2,2,2,3,4,4,55,55,6,2,2,2,7,0,0]
def times_so_far(ls):
    out = [0]*len(ls)
    for i in range(len(ls)):
        out[i] = ls[:i].count(ls[i]) 
    return out
print(times_so_far(x))
Run Code Online (Sandbox Code Playgroud)

sac*_*cuL 10

你可以使用itertools.groupby:

from itertools import groupby
x=[9,2,2,2,2,3,4,4,55,55,6,2,2,2,7,0,0]
out = [len([*group]) for i, group in groupby(x)]
>>> out
[1, 4, 1, 2, 2, 1, 3, 1, 2]
Run Code Online (Sandbox Code Playgroud)