【发布时间】:2017-08-17 05:46:01
【问题描述】:
这是一个 itertools 解决方案,它返回每个连续块的长度列表。这里一个连续的块是一连串的 1,中间没有中断。有没有办法让 itertools 返回与每个块关联的索引?
import itertools
import numpy as np
stack = np.zeros((10,10))
stack[0] = 1
stack[5,:5] = 1
contiguous_hits = [ (sum( 1 for _ in group )) for row in stack for key, group in itertools.groupby(row) if key ]
非常感谢!
【问题讨论】:
-
为什么是
sum( 1 for _ in group ))?为什么不只是sum(group)? -
我认为最初我使用的是 True/False 值而不是整数
-
好的。所以你只计算连续的吗?
-
是的,这是正确的.. 我应该更清楚
-
连续是什么意思?
[1, 1, 1, 0, 1, 1]的答案是什么?