python - 计算一个元素在 python 列表中连续出现 n 次的次数

标签 python python-3.x list

我正在尝试解决以下问题:

我有一个包含多个不同元素的 python list,并且每个元素都可以重复:

list =  ['a', 'a', 'b', 'a', 'foo','foo','foo', 'c','foo', 'd', 'foo','foo']

我想知道某个元素出现了多少次,例如foo 连续出现 n 次,计算第一次出现的次数。因此,list 的计数将如下所示:

list =  ['a', 'a', 'b', 'a', 'foo','foo','foo', 'c','foo', 'd', 'foo','foo']
         +0,  +0 , +0 , +0   ,+0  , +1  , +1  , +0 , +0  , +0 ,  +0  ,  +1    = 3

在本例中,所需的输出将为 3

有什么干净的方法可以做到这一点吗?

我看到了this ,但这只是针对特定的出现次数。就我而言,连续出现的次数不是预先确定的。我想我都不能使用 this other出于同样的原因。

最佳答案

通过分组

from itertools import groupby
l = ['a', 'a', 'b', 'a', 'foo', 'foo', 'foo', 'c', 'foo', 'd', 'foo', 'foo']


result = sum(len(list(key))-1 for grp, key in groupby(l)
             if grp == 'foo')  # prints 3

关于python - 计算一个元素在 python 列表中连续出现 n 次的次数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67434595/

相关文章:

c# - 使用 C# 从 newtonsoft JSON 中提取嵌套值

python - 在 Tkinter 网格上绘图

python - 根据特定键合并字典列表

python - 从具有大量值的数据框中快速创建数组?

python - 如何将 random.choice 应用于我的自定义类?

python - 模块 Seaborn 没有属性 '<any graph>'

python - 显示多张图像

java - 在列表中添加通用对象

python - 函数名作为另一个函数的输入?

python - 使用文件夹结构在 Keras 中进行预测时如何获得正确的标签?