everybody,
a =[0, 0, 2, 4, 6] x=5 this list (a) , fix value (x).
i need loop codes must add x every element of list , add value previous list elements in every loop ( loop must continue x value). other words result should below:
0 0 2 4 6 0 0 7 9 11 0 0 12 14 16 0 0 15 19 21 0 0 21 24 26 i prepared codes below doesn’t work. other words produce below (incorrect)
i=0 counter=0 while counter < x: in a: if >0: i=i+x elif ==0: i=0 print counter=counter+1 0 0 7 9 11 0 0 7 9 11 0 0 7 9 11 0 0 7 9 11 0 0 7 9 11
so, need this… thank you.
i think want (at least, understand question)...
def make_it_so(a, x): = 0 counter=0 while counter < x: in a: if == 0: yield 0 else: yield + counter * x counter = counter + 1 # demo item in make_it_so([0, 0, 2, 4, 6], 5): print item note i've made generator function. turn regular function returns list if created output list @ top of function , swapped yield ... output_list.append(...) , return output_list @ end of function...
the key here understand in first loop, adding 0 of (non-zero) items. in second loop, adding x. in third loop, you're adding x + x (since first loop added x , you're adding x more). in general, nth loop, you'll adding (n-1) * x of non-zero items. so, need keep track of n, (or n-1). in fact, original code doing (with counter), re-purpose , it's good.