我有一个数据集包含只有0和1.我想有一个检测器来找到哪里1开始和哪里1结束,然后返回与其索引相关的东西到不同的列表每。所以,我已经写了一些代码如下:数字检测器为1号和0号
n= [1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1,
1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1]
def detector (data):
x = 0
start = []
end = []
for index, i in enumerate(data):
if x == 0 and i == 1:
start.append((index+1))
x == 1
elif x == 1 and i==0:
end.append((index))
x == 0
return start, end
print (detector(n))
然而,当我运行上面的代码,它返回象下面这样,这不是我想要的输出。
([1, 2, 3, 4, 22, 23, 24, 25, 26, 27, 28, 34, 35, 36, 37, 38], [])
我的期望的输出是如下:
([1, 22, 34], [4,28,38])
正如你可以看到上述情况,START_TIME应该[1,22,34]和END_TIME应该[4,28,38]。
如果有人知道如何解决问题,请让我知道。感谢!
哦,你能解释一下如何改变国旗的价值吗?我想如果我能改变它,那么我的问题就会解决。 – ryan9025
'flag = 1'而不是'flag == 1'。你的代码然后工作,除了捕获最后的end_time – tom
但是当我做'flag = 1',它给我一个语法错误? – ryan9025