values = [2,3,4]
for v in values:values.append([v,255,255])
Why do the statements above never end? I make a mistake in my code. However, I find it will never stop when I execute the code above.
values = [2,3,4]
for v in values:values.append([v,255,255])
Why do the statements above never end? I make a mistake in my code. However, I find it will never stop when I execute the code above.
You iterate over an array which you grow as you iterate over it.
First values is [2,3,4]
then after the first iteration, values is [2, 3, 4, [2, 255, 255]]
then [2, 3, 4, [2, 255, 255], [3, 255, 255]]
etc. You should print
along the iteration to understand it better.
The reason is append
actually changes the very object you are iterating over. You could try
values = [2,3,4]
new_values = []
for v in values:new_values.append([v,255,255])