Фастлейн Кордова - неправильный путь хранилища ключей

В этом цикле:

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
0
задан SilentKiller 13 July 2018 в 07:04
поделиться