Please HELP!!
I have a list:
a = ['False', 'False', 'True', 'True', 'True', 'False', 'False', 'True', 'True']
I want to generate iteration number if it’s False the number continues and if it’s True the number stays. I Try this code:
result = []
x = 1
for i in a:
    while i == 'False':
        result.append(x)
        if i == 'True':
            x+=1
            continue
            result.append(x)
        x += 1
it’s just keep running and did not show any output.
the desired output will be [1,2,3,3,3,4,5,6,6]
I have no idea what’s wrong with it Thanks
Advertisement
Answer
Yet another version of this (with the output behaving as required by OP):
def weird_sequence(some_list):
    prev = None
    number = 0
    for item in some_list:
        if prev is None:
            prev = "False"
        if item == "False" or prev == "False":
            number += 1
        yield number
        prev = item
Usage:
>>> list(weird_sequence(['False', 'False', 'True', 'True', 'True', 'False', 'False', 'True', 'True'])) [1, 2, 3, 3, 3, 4, 5, 6, 6]
