【发布时间】:2016-03-11 19:29:11
【问题描述】:
我有一个二进制值列表:1 = 可同步,0 = 不可同步。每个二进制值表示一个人当天是否可同步。
person1=[1,1,0,1,1,0,1,1,1]
我想制作另一个列表,计算一个人可以连续同步多少天。当出现 0 时,计数器基本上会重置。
因此对于上面的示例,输出将如下所示:
person1=[1,2,0,1,2,0,1,2,3]
我的问题是每当列表遇到 0。我不知道如何重置它。试了好几种方法,都不行。
x=[1,1,1,1,1]
y=[]
for index, value in enumerate(x):
y.append(value+sum(x[:index]))
print(y)
...
[1, 2, 3, 4, 5]
感谢任何帮助。我认为使用递归可能会有所帮助。
【问题讨论】:
-
不要在列表上使用 sum,那样会越来越慢。而是在 for 循环之外设置一个最初为 0 的变量;然后每 1 天求和 1,如果看到 0,则将其设置为 0。
标签: python python-3.x