В вашем коде есть логическая проблема.в i th итерации вы получаете доступ к элементу i + 1 th и i + 1 th Элемент и в итерации i + 1 th вы изменяете i th элемент, который был i + 1 th элемент для i th итерации.Следовательно, всегда текущий элемент будет в массиве, значит ans [i] = 2 будет работать до 3. Чтобы сделать то, что вы пытаетесь сделать, вы должны увеличить значение переменной цикла на 2.
ans = np.empty(5, dtype=np.int64)
for i in range(0,5,2): #incrementing with 2 so that you do not overwrite the previous element
a = 2
b = 4
ans[i] = a
if i+1<5: # This is used to check in case you are accessing out of range element
ans[i + 1] = b
# This will output to 2 4 2 4 2
Синтаксис Python range () это range ([start], stop [, step])
Я думаю, это поможет вам понять, что вы делаете неправильно ..