【发布时间】:2018-06-07 07:30:09
【问题描述】:
如何从 python 中这样的列表中删除块大小小于某个阈值(此处为 4)的连续重复项?
L = [0,0,0,0,0,1,1,1,1,1,0,0,0,1,1,1,1,1,0,0,0,0, 0,1,1,0,0,0,0,0,1,1,0,0,0,0]
我希望结果是这样的:
O = [0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0]
新列表还应将块大小小于阈值(此处为 4)的连续重复块替换为邻居值(如填充邻居)。
我在想一些平滑过滤器之王,但找不到。另外,我正在考虑为此编写原始代码,但无法思考逻辑。
假设它是二进制列表。
【问题讨论】:
-
提示:
itertools.groupby. -
阈值为 4 的 [0,0,0,1,1,0,0,1,1,1,0] 的输出是什么?
-
@Piinthesky 我认为如果初始块大小本身不是大小阈值,这并不复杂。我用 itertools.groupby 解决了我的问题。
标签: python