В этом цикле:
for i in x:
f[i] = x[i] + 1
i
принимает значения 1, 2, а затем 3. x[i]
не так, как вы думаете. i
уже содержит содержимое ячейки массива x
. Поскольку индексы массива начинаются с 0, вы делаете IndexError
при попытке получить элемент индекса 3 (который будет 4-м элементом).
Возможно, вы хотели что-то вроде:
for i in range(len(x)):
f[i] = x[i] + 1
Это также можно было бы записать:
for i, v in enumerate(x):
f[i] = v + 1