我正在尝试解决以下问题:
我有一个包含多个不同元素的 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/