Why does this iterative list-growing code give IndexError: list assignment index out of range? How can I repeatedly add (append) elements to a list?
Почему этот итеративный код увеличения списка выдает IndexError: индекс назначения списка вне диапазона? Как я могу повторно добавлять элементы в список?
Я пытался написать какой-то код, например:
i = [1, 2, 3, 5, 8, 13] j = [] k = 0
for l in i: j[k] = l k += 1
Но я получаю сообщение об ошибке, в котором говорится IndexError: list assignment index out of range, ссылаясь на j[k] = l строку кода. Почему это происходит? Как я могу это исправить?
Переведено автоматически
Ответ 1
j пустой список, но вы пытаетесь записать в элемент [0] на первой итерации, который еще не существует.
Вместо этого попробуйте следующее, чтобы добавить новый элемент в конец списка:
for l in i: j.append(l)
Конечно, вы бы никогда не сделали этого на практике, если бы все, что вы хотели сделать, это скопировать существующий список. Вы бы просто сделали:
j = list(i)
В качестве альтернативы, если вы хотите использовать список Python как массив в других языках, вы могли бы предварительно создать список, элементам которого присвоено значение null (None в примере ниже), а позже перезаписать значения в определенных позициях: