получение IndexError: индекс назначения списка вне допустимого диапазона - PullRequest
0 голосов
/ 03 августа 2020
arr = [1]
arr[0] = arr.pop() 

дает мне IndexError: индекс назначения списка вне допустимого диапазона, я не понимаю, почему?

Ответы [ 2 ]

7 голосов
/ 03 августа 2020

При вызове arr.pop() он изменяет arr на [], поэтому после этого, если вы попытаетесь получить / изменить элемент с индексом 0, он выйдет за пределы диапазона, так как его размер 0

0 голосов
/ 03 августа 2020

Правая часть оператора присваивания оценивается перед левой частью. Таким образом, список пуст, когда вы пытаетесь назначить индекс 0.

Вы можете переписать свой код примерно так:

arr = [1]
popped = arr.pop()
arr[0] = popped
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...