python - 连续计数 1
问题描述
我有一个任务,我要计算一个序列中连续 1:s 的出现次数。这就是我所在的地方。为什么这不起作用?
def count11(seq):
x = 0
for i in seq:
if i == 1:
if seq[i+1] == 1:
x += 1
return x
print(count11([0, 0, 1, 1, 1, 0]))
编辑:该函数应该计算一对的数量,所以给定的序列应该输出 2。
解决方案
你也可以做一个单行:
import re
import math
def count(seq):
return math.ceil(len(max(re.sub(r"[^1]"," ","".join(map(str, seq))).split(), key=len))/2)
print (count([0, 0, 1, 1, 1, 0]))
在您的示例中,这将返回最大对数(最长重复 / 2 次向上),两个(重叠)对。
推荐阅读
- android - 需要解决这个尝试在空对象引用上调用虚拟方法我使用了firebase实时
- html - 在多行上滑动错误的方向,方向:水平和slidesPerColumnFill:'row',
- python - 使用 pyexcelerate 的数据框打印索引
- r - 更改ggplot中形状的lineend
- swift - Swift:使用单元格换行符将字符串导出到 CSV
- html - 如何制作 2 列 div,每列 3 行,在另一个框内居中,两列之间有间隙
- python - Python pandas如何将多行合并为一?
- android - 布局唯一标识
- javascript - JS 或 TS - 获取接口的键
- javascript - 暂停我的 API 端点,直到事件发生