shb*_*brn 0 python loops for-loop while-loop
请帮忙!!
我有一个清单:
a = ['False', 'False', 'True', 'True', 'True', 'False', 'False', 'True', 'True']
Run Code Online (Sandbox Code Playgroud)
我想生成迭代数,如果它是 False 数字继续,如果它是 True 数字保持。我试试这个代码:
result = []
x = 1
for i in a:
while i == 'False':
result.append(x)
if i == 'True':
x+=1
continue
result.append(x)
x += 1
Run Code Online (Sandbox Code Playgroud)
它只是继续运行,没有显示任何输出。所需的输出将是[1,2,3,3,3,4,5,6,6]
我不知道它有什么问题 谢谢
这实际上可以很好地解决accumulatefromitertools
from itertools import accumulate
a = ['False', 'False', 'True', 'True', 'True', 'False', 'False', 'True', 'True']
print(list(accumulate(1 if i == 'False' else 0 for i in a)))
Run Code Online (Sandbox Code Playgroud)
结果与 gtomer 相同,我认为这是正确的输出。